我对C++开发和makefiles的一般想法很陌生,所以请耐心等待。我在Ubuntu 16.04 LTS上,如果这是相关的。CMakeLists.txt不会创建可用的生成文件(Ubuntu和C++)
我想编译使用OpenCV库的average-color.cpp。
项目文件夹:
bin CMakeLists.txt img lib obj src ./bin: ./img: test.png ./lib: core.hpp highgui.hpp imgproc.hpp opencv.hpp ./obj: average-color.d calculate-average-color.d makefile-test.d average-color.o calculate-average-color.o makefile-test.o ./src: average-color.cpp
我能够通过编译工作文件:
g++ average-color.cpp -o test `pkg-config --cflags --libs opencv`
而在src目录下,这使我相信这不是一个代码错误,这是使用Cmake或我发现的一些Makefiles时的编译错误。
下面是我的CMakeLists文件:
cmake_minimum_required(VERSION 2.8)
PROJECT (name)
find_package(OpenCV REQUIRED)
set(NAME_SRC
src/average-color.cpp
)
set(NAME_HEADERS
lib/core.hpp
lib/highgui.hpp
lib/imgproc.hpp
lib/opencv.hpp
)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/lib)
link_directories(${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
add_executable(name ${NAME_SRC} ${NAME_HEADERS})
当我运行,将产生一个makefile “的cmake。”从那里开始,运行“make”失败:输出如下(无法在此处很好地格式化)。 http://textuploader.com/d5wks
如果有人发现我的CMakeLists.txt有明显的错误,请解释一下,我还没有找到很多关于这一切的明确解释。
您在“CMakeLists.txt”中缺少'target_link_libraries()' – drescherjm
该链接应该包含哪些内容?我的lib文件夹? –
***我的lib文件夹?***不是文件夹,而是各个库。 @SteveThibault回答说。 – drescherjm