CMake错误:'目标不是由这个项目构建的'

Poo*_*dar 7 c++ opencv cmake clion

我的CMakeLists.txt档案是:

cmake_minimum_required(VERSION 3.7)
project(OpenCV_Basics)

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_LIBS})
target_link_libraries(OpenCV_Basics )

add_executable(OpenCV_Basics ${SOURCE_FILES})
Run Code Online (Sandbox Code Playgroud)

当我试图编译main.cpp时,我被困了.

CMake Error at CMakeLists.txt:10 (target_link_libraries):
  Cannot specify link libraries for target "OpenCV_Basics" which is not 
built
  by this project.
Run Code Online (Sandbox Code Playgroud)

怎么了?

我在Mac上的Clion工作.

Tom*_*ava 8

add_executable定义了一个目标,但在您的代码中,您尝试编译定义了一个目标.

只需改变这两行的位置:

  • 首先定义目标

  • 链接图书馆.

像这样

add_executable(OpenCV_Basics ${SOURCE_FILES})
target_link_libraries(OpenCV_Basics )
Run Code Online (Sandbox Code Playgroud)


Tsy*_*rev 6

当任何CMake命令接受目标参数时,它期望给定目标已经创建

正确用法:

# Create target 'OpenCV_Basics' 
add_executable(OpenCV_Basics ${SOURCE_FILES})
# Pass the target to other commands
target_link_libraries(OpenCV_Basics ${OpenCV_LIBRARIES})
Run Code Online (Sandbox Code Playgroud)