首页 文章

使用CMakeLists.txt构建qt编译输出make:***没有规则使目标“all” . 停止[关闭]

提问于
浏览
0

CMakeLists.txt 构建,编译输出如下:

make:没有规则让目标'全部' . 停止 . 20:28:38:进程“/ usr / local / bin / cmake”退出代码2.构建/部署项目测试时出错(工具包:Desktop Qt 5.7.0 GCC 64bit)执行步骤“Make”时

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)

1 回答

  • 2

    从评论中,你自己想出了答案 .

    顺便说一句,你将 OpenCV 标记为必需的包,因此测试 OpenCV_FOUND 是没用的:如果找不到,cmake会抛出错误 .

    documentation不建议使用 GLOB 收集源文件:

    我们不建议使用GLOB从源树中收集源文件列表 . 如果在添加或删除源时没有更改CMakeLists.txt文件,则生成的构建系统无法知道何时请求CMake重新生成 .

    除非你的cmake版本小于2.8.11,否则你不需要调用 include_directorieslink_directories ,也不需要调用 add_definitionsimported targets中的相应信息是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})
    

相关问题