簡體   English   中英

C ++-包含庫中的extern變量

[英]c++ - extern variable in included library

即使經過大量的搜索,我在C ++中還是遇到了一個問題,即我使用頭文件和源文件制作了一個項目,並試圖制作另一個包含第一個項目的項目。 我發現了這個問題,但是問詢者能夠生成一個.a文件,但我似乎做不到。

頭文件

extern int num;

Source.cpp

#include "Header.hpp"

int num = 2;

(順便說一下,這一切都在Code :: Blocks中)

我做了另一個項目,其中包括第一個項目。

Main.cpp

#include <iostream> 

#include "Header.hpp"

int main(int argc, const char* argv[])
{
    std::cout << num << "\n";
}

為了包括第一個項目,我:

  • 將第一個項目的根目錄添加到第二個項目的“搜索目錄”->“編譯器”列表中

  • 將第一個項目的相同根目錄添加到第二個項目的“搜索目錄”->“鏈接器”列表中

當我嘗試使用MinGW編譯此代碼時,出現錯誤:

undefined reference to 'num'

一些谷歌搜索建議我將第一個項目的.lib / .a文件添加到“鏈接器設置”->“鏈接庫”列表中。 但是,我的第一個項目沒有.lib / .a文件,而且我不確定如何創建該文件。

還需要什么來確保我的“圖書館”項目可以包含在我的第二個項目中?

感謝Sami Kuhmonen的評論,我意識到問題在於我將構建目標設置為可執行文件而不是靜態庫,這就是為什么我要獲取.exe文件而不是.a文件的原因。 我要做的就是更改構建目標,將.a文件添加到“鏈接器設置”->“鏈接庫”列表,然后更改“搜索目錄”->“編譯器” /“鏈接器”列表以搜索包含文件。和src目錄分別工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM