2013-01-19 148 views
3

我試圖編譯一個基本的C++程序有3個文件:main.cpp中file.hfile.cppUBUNTU C++編譯器找不到頭文件

當我把 c++ -pthread *.cpp它給我一個錯誤說:

fatal error: file.h: No such file or directory 
compilation terminated. 

的main.cppfile.cpp都有#include "file.h"

+7

'file.h'在同一個目錄下嗎? – Beta

+0

我想你運行'g ++ -pthread * .cpp'而不是'C++ -pthread * .cpp'? – Haatschii

+2

@Haatschii,他們在我的ubuntu機器上是一樣的。你在做什麼? –

回答

1
g++ -I. *.cpp 

這告訴編譯器找到當前目錄下的頭文件,而不是隻在默認目錄(/usr/include和/ include)。

我建議你編譯這個微不足道的例子來使用GNU Make。標準規則將適用於您。

make file.cpp main.cpp 

也許,如果你有同樣的問題(file.h未找到),你可以設置CXXFLAGS = -I。

+0

謝謝,這最終導致了工作(即使我的代碼沒有;)。我已經嘗試過-I選項,因爲那個討厭的小東西無濟於事。「在-I選項之後。 – Alex

+0

如果您的包含文件位於多個位置,則-I選項可以多次使用。 – JoseLSegura