2011-05-11 1043 views
5

我想用多個源文件 - 兩個CPP文件和一個頭文件,用code :: blocks編譯一個程序。舉個例子,我創建了以下三個文件(由其他人在另一個論壇創建的示例程序):Code :: Blocks - 如何編譯多個源文件

main.cpp中:

#include <stdio.h> 
#include "other.h" 

int main (void) 
{ 
    printf("%d\n", getfavoritenumber()); 

    return 0; 
} 

other.cpp

#include "other.h" 

int getfavoritenumber(void) 
{ 
    return 3; 
} 

其他.h

#ifndef _OTHER_H_ 
#define _OTHER_H_ 

int getfavoritenumber(void); 

#endif 

儘管事實上這三個文件應該彼此鏈接,當我嘗試構建項目時,收到錯誤「跳過鏈接舞臺(構建目標沒有目標文件鏈接)」。

我在做什麼錯?嘗試編譯單個文件會出現錯誤「該文件未分配給任何目標」。

+1

您選擇了哪種類型的項目?您應該選擇「控制檯應用程序」。 – jonsca 2011-05-11 22:26:43

回答

1

我這樣做:

  • 代碼::塊

  • 對於每一個文件,我沒有File|New創建一個空文件中創建一個控制檯項目,將其添加到使用您指定的名稱進行項目並將您問題中的相關代碼粘貼到每個文件中。

  • 編譯並運行生成的可執行文件。

一切按預期工作。如果它不適合你,請描述你是如何創建項目的。 Code :: Blocks絕對需要一個項目 - 它不適用於單個文件。如果你想要的話,從命令行使用GCC。

編輯:

  • 它通常是從CB,這是真的只是一個IDE單獨安裝編譯器是個好主意。我假設我們在Windows上。去http://tdm-gcc.tdragon.net並從那裏下載最新的GCC編譯器。檢查它從命令行工作。

  • 然後在CB中轉到Settings|Compiler and Debugger並選擇Toolchains executables選項卡。然後導航到安裝了TDM GCC的目錄(根目錄,而不是根目錄下的bin目錄)的根目錄,並且一切都會好的。

如果在一天結束時這不起作用,請嘗試在CB支持論壇http://forums.codeblocks.org

+0

我正按照所述創建項目。我已經嘗試過使用'Console Application'項目類型的jonsca建議。我使用的是默認編譯器 - GNU GCC編譯器。這可能是問題 - 有幾種編譯器可供選擇。我如何知道它們是否安裝正確? (我認爲默認的編譯器包含在安裝的code :: blocks中 - 我幾天前下載了該程序並選擇了mingGW編譯器自帶的編譯器 - 但這個編譯器不在列表中,我懷疑我的問題可能在這裏嗎? – Matt 2011-05-11 22:47:11

+0

@Matt看到我的編輯 – 2011-05-11 22:57:12

1

我在創建第一個多源代碼項目時遇到了類似的問題。我相信你遇到的問題不在於鏈接,而是你對我的#include語句目錄與我的預期不同。將頭文件包含在我不得不寫的項目中#include "include/other.h"查看您的文件夾系統是如何構建的....如果你可以發佈你在項目中的文件夾/目錄,我可能會給你一個更好的答案。

2

我有一個類似的問題,發現如果我只是關閉了項目,創建了一個新的空白控制檯應用程序,然後導入現有的文件的東西開始編譯好。

+1

這是不是讓你覺得Code :: blocks是一塊廢話? – 2015-08-25 18:57:19

15

這裏是我工作:

轉到左側面板,上面寫着項目,並在.cpp文件中單擊鼠標右鍵。選擇屬性,然後去建立。選中目標屬性中的框:「調試」和「發佈」

+0

這解決了我的問題!謝謝! – Mitro 2015-01-25 13:37:44

0

確保所有文件(.h和.cpp)都已添加到項目中,使用項目>添加文件...或項目>添加文件遞歸...