将库 .h 附加到 makefile
Posted
技术标签:
【中文标题】将库 .h 附加到 makefile【英文标题】:Attach library .h to makefile 【发布时间】:2016-12-06 17:52:19 【问题描述】:我想在 cmake 中将 librarywiringPi.h 添加到我的 Makefile 中,但是 cmake 没有看到这个头文件。
cmake_minimum_required(VERSION 2.8)
project( program )
include_directories(include)
find_package( OpenCV REQUIRED )
add_executable( program program.cpp )
target_link_libraries( program $OpenCV_LIBS )
项目组织为:
|-- CMakeLists.txt | |-- 程序.cpp | |-- 连线Pi.h
我应该如何将此标头添加到 Makefile?
【问题讨论】:
您不需要添加标题。 CMake 自己计算出来。 @Stargateur 我转储了 add_executable(program program.cpp),我尝试了你的方法,但它不起作用 /home/luko/naukacop/program.cpp:2:22:致命错误:wiringPi。 h:没有这样的文件或目录编译终止。 CMakeFiles/program.dir/build.make:62:目标“CMakeFiles/program.dir/program.cpp.o”的配方失败 make[2]:*** [CMakeFiles/program.dir/program.cpp.o]错误 1 CMakeFiles/Makefile2:67: 目标“CMakeFiles/program.dir/all”的配方失败 make[1]: *** [CMakeFiles/program.dir/all] 错误 2 Makefile:83: 目标“所有”的配方制作失败:*** [全部] 错误 2cmake_minimum_required(VERSION 2.8) project( program ) include_directories(wiringPi) add_executable(wiringPi lukasz22/naukacop/wiringPi.h ) find_package( OpenCV REQUIRED ) add_executable( program program.cpp wiringPi.h) target_link_libraries( program $OpenCV_LIBS )
@Stargateur 是否正确?我收到一些错误:(
@Stargateur 抱歉,今天我开始使用 ***。 `CMakeLists.txt:4 (add_executable) 处的 CMake 错误:找不到源文件:luko/naukacop/wiringPi.h 已尝试扩展名 .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh 。 h++ .hm .hpp .hxx .in .txx '
是的,我使用了树,但我的库在文件夹中,但我只在 CMakeFiles 中看到我的库
【参考方案1】:
这必须适用于您的情况:
cmake_minimum_required(VERSION 2.8)
project(program)
find_package(OpenCV REQUIRED)
add_executable(program program.cpp wiringPi.h)
target_link_libraries(program $OpenCV_LIBS)
如果您需要更多信息,请阅读此How to properly add include directories with CMake?。你应该阅读官方的tuto。请注意,2.8 是一个非常旧的版本,您应该更新到最新的稳定版。
【讨论】:
以上是关于将库 .h 附加到 makefile的主要内容,如果未能解决你的问题,请参考以下文章
MakefileMakefile 中 LINUXINCLUDE 的作用
MakefileMakefile 中 LINUXINCLUDE 的作用