c++头文件的当前工作目录
Current Working Directory for Header Files C++
我正在编译过程中,我在自定义头文件的路径上遇到问题。
这是存储库的结构。
temp
seqLib
headerFiles
SeqLibCommon.h
src
hello_world.cpp
hello_world.cpp文件如下所示:
#include <iostream>
#include <Rcpp.h>
#include "../headerFiles/SeqLibCommon.h"
这可以编译并工作,但是,在c++包中,SeqLibCommon.h的路径将被引用如下:
#include "headerFiles/SeqLibCommon.h"
为什么两者不同?
一个R包编译总是相对于src/
,它成为构建的工作目录。
如果你想明确添加目录你可以添加
PKG_CXXFLAGS = -I.
如果你想添加目录inst/include/
你必须添加
PKG_CXXFLAGS = -I../inst/include
,因为您需要相对于 src/
。
对于您的SeqLib源:您可以移动周围的东西,或根据需要调整您的src/Makevars
。
每个通用的编译器都允许你定义一个包含文件夹。这里你可以说headerFiles
是你的包含文件夹,所以你的hello_world将是
#include <iostream>
#include <Rcpp.h>
#include "SeqLibCommon.h"
或者你可以将include文件夹定义为temp所以它将是
#include "headerFiles/SeqLibCommon.h"
在g++或clang上,可以这样编译:
g++ src/hello_world.cpp -o hello_world -I headerFiles
相关文章:
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- 我的文件无法正常工作,无法从C++文件中读取上下文
- 我的 SDL2 程序需要哪些二进制文件,以便它在另一台未安装 SDL2 的计算机中工作
- 为什么这不会在当前目录中生成文件?
- 当前不会命中断点。没有调试器目标代码类型的可执行代码与此文件关联
- 当前步骤:构建任务.json 文件
- 如何在 unix 中获取当前工作目录中最大的文件
- 如何获取 c++ 文件的当前工作目录
- 当前工作目录中的文件I/O会失败吗
- 更改当前工作目录 VS13?
- 不完整的参数错误,包括其他.cpp文件中的postgres.cpp工作文件
- 获取当前工作目录的相对路径,而不是绝对路径
- 为什么 g++ -MM 选项忽略当前工作目录的包含文件
- 如何在不破坏当前工作代码的情况下添加小数
- 如何更改当前工作目录
- 猫鼬网络服务器获取当前工作线程
- c++头文件的当前工作目录
- 在Qt应用程序中获取当前工作目录
- 如何显示具有当前打开文件的设备名称的绝对路径
- VSPackage使用C++,如何在visual studio中获取当前工作项目的目录