2014-08-28 141 views
1

我剛開始使用Qt,並且出現了一些問題。我相信這肯定是一個簡單的解決方案,但我無法找到它。Qt包括另一個項目的類(無法打開包含文件:'foo.h')

我有兩個項目,ProjectOne和ProjectTwo。我希望你在ProjectTwo的main.cpp中使用ProjectOne中的類foo。當我跑我PROGRAMM文件複製/引用到ProjectTwo,但是當我嘗試包括在我main.cpp中(#include "foo.h")我收到以下錯誤FOO:


> main.cpp:3: error: C1083: Cannot open include file: 'foo.h': 
> No such file or directory 

這裏是我的結構:

-ProjectOne 
    -ProjectOne.pro 
    -Headers 
     -foo.h 
    -Source 
     -foo.cpp 
    -Other files 
     -ProjectOne.pri 
-ProjectTwo 
    -ProjectTwo.pro 
    -ProjectOne 
     -ProjectOne.pri 
     -Headers 
      -foo.h 
     -Sources 
      -foo.cpp 
    -Sources 
     main.cpp 

這裏是我的編輯對我的.pro和.pri文件

**ProjectOne.pri** 
INCLUDEPATH += $$PWD 
SOURCES  += $$PWD/foo.cpp 
HEADERS  += $$PWD/foo.h 

**ProjectTwo.pro:** 
include(../ProjectOne/ProjectOne.pri) 
QT += core 
SOURCES += foo.cpp 
HEADERS += foo.h 

我在Windows 7上我的編程語言使用Qt Creator的3.1.2是C++,我與VisualStudio的10個快速編譯。

任何幫助,非常感謝!

+0

你能告訴我你在哪裏包括了foo.h在你的main.cpp – 2014-08-28 09:38:15

+0

感謝您的答覆就行了!該行是:'#include「foo.h」' – oemay 2014-08-28 09:43:04

+0

看起來像你的編譯器不知道在哪裏找到foo.h.看到我的回答 – 2014-08-28 09:48:05

回答

0

當包含一個文件不是直接在你的項目文件夾中,你需要包含完整或相對路徑。

#include "bar/foo.h" 

#include "../../bar/foo.h" 
+0

我將main.cpp中的Include語句更改爲'#include「../ProjectOne/foo.h"'並且它工作正常!非常感謝!我希望你不介意我問:我是否還需要添加任何庫?因爲現在我得到一個無法解析的外部符號錯誤.. – oemay 2014-08-28 09:51:22

+0

對不起,但我不能看到沒有更多的代碼的問題。也許這可以幫助你http://msdn.microsoft.com/de-de/library/799kze2z.aspx – 2014-08-28 09:56:34

+0

@oemay,是的,你必須添加庫。只需通過添加LIBS + = -L「path_to_your_lib_without_name」-l [libname]來修改.pro文件 – tema 2014-08-28 13:05:17

相關問題