簡體   English   中英

頭文件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

每個常用的編譯器都允許您定義一個include文件夾。 在這里您可以說headerFiles是您的include文件夾,因此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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM