导航:首页 > 版本升级 > make头文件路径

make头文件路径

发布时间:2023-08-06 16:42:16

⑴ makefile中怎么设置头文件的路径在线等

你源代码包含头文源件的方式也要和你的CFLAGS的路径配合,举例:
1 源文件:#include <pcl/point_types.h> makefile: -I/test/ROS/ros/fuerte/include/
2 源文件:#include <point_types.h> makefile: -I/test/ROS/ros/fuerte/include/pcl

估计你源文件是1的情况,makefile又是2的情况,所一出问题了。

⑵ CMake里面怎么递归地设定头文件的搜索目录

CMake头文件搜索路径

# 中午吃完饭,就到了办公室,开始看 OGRE 的CMake配置文件。
# 想根据实例,再配合 CMake 安装包里自带了官方Manual,学习CMakeLists文件的编写。
# 不得不承认,没有外网真心惨。用手机查资料眼睛都瞅瞎了。
# 中间出去吃了个晚饭,然后一直研究到10点,还算是有点收获
本文内容要点:
1. 多目录下,头文件路径包含
2. 项目依赖关系设置
3. 发现的一些问题
本文涉及到的CMake命令:
project(name) : 设置project的名字为name。
add_dependencies:设置依赖关系
add_subdirectory:添加子目录
add_executable:添加可执行文件
add_library:添加库
cmake_minimum_required:设置cmake最低版本要求
include_directories:包含目录
target_link_libraries:链接库
set:可以用于设置变量
补充命令:
file(GLOB_RECURSE HEADER_FILES dir/*.h??)
此命令可以用来收集源文件 HEADER_FILES 作为变量保存收集的结果。 后面为文件过滤器,其中dir为起始搜索的文件夹,即在dir目录下,开始收集,而且会遍历子目录。 ? 代表 a-z。
首先给出目录结构(“-”表示目录级数)
-sin
--include
---sin.h
--src
---sin.cpp
-sinutil
--include
---sinutil.h
--src
---sinutil.cpp
-main
--main.cpp
目的:
main.cpp 要使用 sin 里面 sin.h 和 sin.cpp 生成的静态库 sin.lib,而 sin.lib 的生成要使用 sinutil 里面的 sinutil.h 和 sinutil.cpp 生成的静态库 sinutil.lib 。
sinutil.cpp 要包含 sinutil.h,而 sinutil.h 不在 sinutil.cpp 目录下。同理 sin.cpp 也要包含 sinutil.h ,main.cpp 要包含 sin.h。
根据CMake的规则,在根目录下和每个子目录下加入 CMakeLists.txt 文件。
# 为了便于区分,我给每个 CMakeLists.txt 加了编号后缀。
# 真正运行的时候,CMake配置文件只能命名为 CMakeLists.txt。
得到的目录结构如下:
- CMakeLists.txt - 1
-sin
-- CMakeLists.txt - 2
--include
---sin.h
--src
---sin.cpp
-sinutil
-- CMakeLists.txt - 3
--include
---sinutil.h
--src
---sinutil.cpp
-main
-- CMakeLists.txt - 4
--main.cpp
CMake配置文件内容如下:
#CMakeLists.txt - 1
cmake_minimum_required(VERSION 2.8.1)

project(CMakeDemo)
include_directories(${CMakeDemo_SOURCE_DIR}/sin/include)
include_directories(${CMakeDemo_SOURCE_DIR}/sinutil/include)

add_subdirectory(sin)
add_subdirectory(sinutil)
add_subdirectory(main)

#CMakeLists.txt - 4
project(MainDemo)
set(SRC_LIST main.cpp)
add_executable(demo ${SRC_LIST})
add_dependencies(demo SinLibrary)
target_link_libraries(demo ${SinLibrary})
#CMakeLists.txt - 2
set(HEADER_LIST include/sin.h)
set(SRC_LIST src/sin.cpp)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_library(SinLibrary ${HEADER_LIST} ${SRC_LIST})
add_dependencies(SinLibrary SinUtilLibrary)
target_link_libraries(SinLibrary ${SinUtilLibrary})
#CMakeLists.txt - 3
set(HEADER_LIST include/sinutil.h)
set(SRC_LIST src/sinutil.cpp)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
add_library(SinUtilLibrary ${HEADER_LIST} ${SRC_LIST})
结论:
1. CMake使用 include_directories 命令来添加头文件包含路径,且 include_directories 命令具有继承性。下级目录继承了上级目录中CMakeLists.txt 里面 include 的 directrories。但是平级目录之间的 CMakeList.txt 里面的include_directories 不能共享。
2. CMAKE_CURRENT_SOURCE_DIR 为 CMake 定义的环境变量,指向当前 CMakeLists.txt 所在的目录。
3. 当使用 project(name) 命令时,CMake会自动生成两个变量 name_SOURCE_DIR 和 name_BINARY_DIR,前一个指向使用 project 命令的CMakeLists.txt 所在的文件夹,后一个指向用cmake构建时,Build 目录下对应的目录。
问题:
1. 目前还没搞清 project 与 VS 里面的 解决方案(solution)和 工程(项目,project)的对应关系。
2. 使用 add_dependencies 来设置依赖关系时,在VS 2003 下,会为每一个subdirectory里面的project生成一个额外的带 UTILITY 后缀的工程,能不生成吗?

⑶ 如何在makefile中指定头文件目录

你应该说的是gcc来编译吧,gcc在makefile里边就是一个命令,你的要求是指定头文件的目录,那么可以用-I选项来指定。比如,你在src/include/目录中放了很多头文件,那么可以参照如下:

myapp: main.o
gcc $^ -o $@
main.o: main.c
gcc -Isrc/include/ -c $^ -o $@

其中 -I 后边紧接着的就是路径,它们之间是没有空格的哦!

⑷ makefile中怎样指定include头文件的路径

你源代码包含头文件的方式也要和你的CFLAGS的路径配合,举例:专1源文属件:#includemakefile:-I/test/ROS/ros/fuerte/include/2源文件:#includemakefile:-I/test/ROS/ros/fuerte/include/pcl

阅读全文

与make头文件路径相关的资料

热点内容
excel表格文件化乱码 浏览:986
win7无法打开隐藏文件 浏览:757
怎样把压缩文件变成空白文件 浏览:516
wokrNC和UG编程哪个好 浏览:487
爱奇艺随刻文件名 浏览:40
wps是怎么压缩文件 浏览:986
dos配置文件名 浏览:582
java软件工程师做什么 浏览:897
3dmax导出ive文件 浏览:464
数据重复性好是什么意思 浏览:166
如何查找电脑文件使用历史记录 浏览:821
linux可以运行exe的文件吗 浏览:935
库币是哪个国家的app 浏览:201
大智慧internet文件夹有哪些文件 浏览:89
编程培训课程哪个排名好 浏览:124
我的cad怎么没显示文件选项卡 浏览:952
命令行当前是哪个数据库 浏览:588
为什么appstore打开空白 浏览:574
选货车软件什么app最好 浏览:577
psv仙境传说ace如何降级版本 浏览:460

友情链接