簡體   English   中英

錯誤LNK1561:必須定義入口點

[英]Error LNK1561: entry point must be defined

我正在使用Visual Studio 2012。

我的解決方案有3個項目

了projectA

項目B

項目C

而層次結構就像

projectC依賴於projectB ,而projectB又取決於projectA projectC中有一個main函數 ,projectB和projectA中沒有main。 我得到的錯誤是:

error LNK1561: entry point must be defined      projectA
error LNK1561: entry point must be defined      projectB

我已嘗試在配置屬性 - >鏈接器 - >系統 - >子系統更改為控制台(/ SUBSYSTEM:CONSOLE)但問題仍然存在

幫助我解決這個問題。

看來,你誤解了“模塊”一詞。 Visual Studio中沒有這樣的C ++項目; C ++項目可以分為三類:

  • 程序 - 編譯產生一個exe文件,可以執行;
  • 靜態庫 - 編譯生成一個lib文件,該文件可以包含在另一個項目中,並在編譯期間鏈接;
  • 動態庫 - 編譯生成一個dll文件,該文件可以在運行時附加到您的程序並提供其他功能。

從您的描述中,您希望projectB和projectC是一個靜態庫,而是將它們創建為可執行文件。 再次運行新項目向導並選擇“靜態庫”而不是“Windows應用程序”。

您可以在MSDN庫中閱讀有關靜態庫的更多信息。

如果靜態庫對於您的應用程序來說太重要了,您可以只在項目中包含projectB和projectC文件(可選擇處理名稱空間而不要混淆類的名稱)。 這完全取決於您計划在這些“模塊”中實施多少功能。

將屬性 - >鏈接器 - >系統 - >子系統設置為“Windows(/ SUBSYSTEM:WINDOWS)”

可能發生的事情,我發生的事情是,當您將項目的屬性從.exe切換到.dll時,如果從調試切換到發布或從x86切換到x64,每次執行此操作時都會將您切換回。可執行程序。 每個配置都有自己的屬性。

因此,請轉到“屬性”>“配置類型”>“.dll”

如果你確實要制作一個.dll。

我猜你正在使用Windows來創建這個項目,對我來說,如果我經常使用SDL我得到這個錯誤,你所要做的就是輸入#include <Windows.h>來解決它,如果沒有,那么我不確定如何解決這個問題。

暫無
暫無

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

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