2012-10-13 64 views
2

我有我的項目在一個名爲垃圾場的目錄。在垃圾場內,我有test.c,和一個名爲include的文件夾。GCC包括窗口中的頭文件

我的代碼如下所示:

#include <my_global.h> 
#include <mysql.h> 

int main(int argc, char **argv) 
{ 
    printf("MySQL client version: %s\n", mysql_get_client_info()); 
} 

而且兩個頭文件位於include文件夾(這又是在項目的根目錄內所以結構的必要文件所在等。此:

垃圾場/ test.c的

垃圾場/包含/ mysql.h中

垃圾場/ include/my_global.h

請注意,我在Windows上使用GCC。我無法編譯該程序,並嘗試了幾種方法。如何正確鏈接頭文件?謝謝。

+1

你不鏈接的頭文件,聯動是4個編譯階段後。但是,向編譯器標誌添加'-Iinclude'可以解決這個問題。 – 2012-10-13 20:04:01

+0

@ H2CO3那麼編譯'test.c'時如何包含它們呢? – capcom

+0

你能顯示確切的編譯器行嗎? – Zeta

回答

4

所有差的第一#include syntax之間:

  • #include <>是指包括從「編譯目錄」(其可以由preprocessor option -I設置)文件
  • #include ""是指包括從「本地目錄」
  • 文件

如果你想從你的項目中包含文件,你可能應該使用:

#include "include/mysql.h" 
#include "include/my_global.h" 

如果你(因爲某些原因)希望仍然使用#include <>使用gcc這樣的:

gcc -Iinclude test.c 
+0

如果標題位於稱爲標題的文件夾而不是包含文件夾中,'I包括'是'-Iheaders'嗎? – capcom

+0

@capcom是的,他們會,我已經添加了一個鏈接,它描述了它在海灣合作委員會「手冊」 – Vyktor