CMake 错误:'target is not built by this project'



我的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})

当我尝试编译主.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.

怎么了?

我在Mac上的Clion工作。

add_executable定义一个目标,但在代码上,你在尝试编译它后定义一个目标。

只需更改这两行的位置:

  • 首先定义目标

  • 链接库。

喜欢这个

add_executable(OpenCV_Basics ${SOURCE_FILES})
target_link_libraries(OpenCV_Basics )

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

正确用法:

# Create target 'OpenCV_Basics' 
add_executable(OpenCV_Basics ${SOURCE_FILES})
# Pass the target to other commands
target_link_libraries(OpenCV_Basics ${OpenCV_LIBRARIES})

最新更新