使用CMakeLists.txt
构建,编译输出如下:
make:没有规定制定目标'全部'。停止。
20:28:38:进程" / usr / local / bin / cmake"退出代码2.
构建/部署项目测试时出错(工具包:Desktop Qt 5.7.0 GCC 64位)执行步骤"制作"
CMakeLists的内容是:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(test)
file(GLOB SRCS *.c *.cpp *.cc *.h *.hpp)
add_executable(${PROJECT_NAME} ${SRCS})
find_package( OpenCV REQUIRED )
if(OpenCV_FOUND)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIB_DIR})
add_definitions(${OpenCV_DEFINITIONS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
endif(OpenCV_FOUND)
答案 0 :(得分:2)
从评论中,你自己想出了答案。
顺便说一句,您将OpenCV
标记为必需的包,因此测试OpenCV_FOUND
无用:如果找不到,则cmake会抛出错误。
GLOB
收集源文件
我们不建议使用GLOB从源树中收集源文件列表。如果在添加或删除源时没有更改CMakeLists.txt文件,则生成的构建系统无法知道何时要求CMake重新生成。
除非您的cmake版本低于2.8.11,否则您无需拨打include_directories
,link_directories
或add_definitions
:相应的信息将“嵌入” imported targets由变量OpenCV_LIBS
表示。你的cmake应该是:
cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
project(test)
add_executable(${PROJECT_NAME}
# list your files here
)
find_package( OpenCV REQUIRED )
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})