2013-03-11 92 views
0

我已經處理C/C++已經有一段時間了,所以請原諒我,如果這是一個可笑的回答問題 - 我只是不太懂得如何「Google」它。在Linux上丟失的包含文件的編譯器選項

我有一個文件「MyFile.h」,其中包含文件「includedFile.h」。但是,編譯器無法提供文件。請看下圖:

File/folder structure for project foo.

我在做什麼正在從舊的Solaris系統的Linux機器的項目。奇怪的是,它現在在Solaris上運行,但Linux有點困惑。

,我使用該項目的生成文件並沒有改變其中任何一個讓我覺得它可能是一個編譯器選項...

那我怎麼告訴其中包括文件是在Linux上的編譯器,或者我如何在「MyFile.h」中指定它?

回答

2

與海灣合作委員會和鐺,指定包括使用-I路徑:

g++ -o myprogram main.cc extra.cc -I/usr/include/boost -I/my/extra/include/files

可以指定完整路徑你的文件,如#include "/path/to/my/includedfile.h",但我堅決取締這種做法,因爲它強制每個想編譯你的代碼的人遵守這個目錄佈局。

另外相關:閱讀下面的鏈接中的gcc #include <file>#include "file"之間的差:http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html

+0

什麼是clang - 它是另一個C++編譯器嗎? – redhotspike 2013-03-11 16:46:48

+0

是的,它確實是另一個編譯器。 – us2012 2013-03-11 16:48:47

+0

非常好 - 謝謝你的鏈接!我同意文件版本中的完整路徑:真的不想這樣做。 – redhotspike 2013-03-11 16:49:48

2

假設使用的是克++,傳遞與-I標誌的路徑。

g++ ..... -I<a path to your includes> -I<another path to includes> 
+0

這種想法很容易。哈哈謝謝! – redhotspike 2013-03-11 16:47:36