C++ 头文件C++;
我正在编译过程中,在自定义头文件的路径方面遇到了问题 下面是存储库的结构C++ 头文件C++;,c++,rcpp,C++,Rcpp,我正在编译过程中,在自定义头文件的路径方面遇到了问题 下面是存储库的结构 temp seqLib headerFiles SeqLibCommon.h src hello_world.cpp 在hello_world.cpp文件中,如下所示: #include <iostream> #include <Rcpp.h> #include "../headerFiles/SeqLibCommon.h" 为什么这两个不同?每个常见的编译器都允许您
temp
seqLib
headerFiles
SeqLibCommon.h
src
hello_world.cpp
在hello_world.cpp文件中,如下所示:
#include <iostream>
#include <Rcpp.h>
#include "../headerFiles/SeqLibCommon.h"
为什么这两个不同?每个常见的编译器都允许您定义一个包含文件夹。在这里你可以说,
headerFiles
是你的include文件夹,所以你的hello\u世界就是这样
#include <iostream>
#include <Rcpp.h>
#include "SeqLibCommon.h"
在g++或clang上,您可以这样编译:
g++ src/hello_world.cpp -o hello_world -I headerFiles
每个通用编译器都允许您定义一个include文件夹。在这里你可以说,
headerFiles
是你的include文件夹,所以你的hello\u世界就是这样
#include <iostream>
#include <Rcpp.h>
#include "SeqLibCommon.h"
在g++或clang上,您可以这样编译:
g++ src/hello_world.cpp -o hello_world -I headerFiles
R包编译始终与
src/
相关,后者成为构建的工作目录
如果要显式添加该目录,可以添加
PKG_CXXFLAGS = -I.
如果要添加目录inst/include/
,则必须添加
PKG_CXXFLAGS = -I../inst/include
因为您需要相对于src/
。你可以把两者结合起来
至于你的SeqLib源代码:你可以移动东西,或者根据需要调整你的
src/Makevars
。一个R包编译总是相对于src/
,后者成为构建的工作目录
如果要显式添加该目录,可以添加
PKG_CXXFLAGS = -I.
如果要添加目录inst/include/
,则必须添加
PKG_CXXFLAGS = -I../inst/include
因为您需要相对于src/
。你可以把两者结合起来
至于你的SeqLib资源:你可以根据需要移动东西,或者调整你的
src/Makevars
。完美!谢谢你!谢谢