VS編譯錯誤彙總(持續更新中。。。。。)

2021-08-22 11:36:51 字數 2558 閱讀 8985

解決辦法:在專案-》屬性-》配置屬性-》常規-》字符集中,將當前專案的字符集選項改為使用多位元組字符集。(一般vs預設的字符集為unicode字符集)

參考**:

解決辦法:在對應**位置,新增如下**:

#ifdef __cplusplus

#define __stdc_constant_macros

#endif

解決辦法:在darknet_io.cpp 中 #include即可

參考**:

解決辦法:修改工程屬性可以解決這個問題。開啟工程屬性頁-》配置屬性-》鏈結專案-》優化,有個「引用」項,選擇否(/opt:noref)即可,截圖如下:

在msdn上查詢/opt(優化)相關資訊

ref|noref

/opt:ref清除從未引用的函式和資料;

/opt:noref保留從未引用的函式和資料。

如果想要進一步了解,可參考**:

解決辦法:出現上述問題主要是檔案編碼的問題。檢視專案的編碼格式為「utf-8 無簽名」(如圖)

將其修改為「utf-8 帶簽名」(如圖)即可解決上述問題。

參考**:

一,問題描述 

msvcrtd.lib(exe_winmain.obj) : error lnk2019: 無法解析的外部符號 winmain,該符號在函式 "int __cdecl invoke_main(void)" (?invoke_main@@yahxz) 中被引用

camshift.exe : fatal error lnk1120: 1 個無法解析的外部命令

error lnk2001: unresolved external symbol _winmain

debug/main.exe:fatal error lnk 1120:1 unresolved externals 

error executing link.exe;

二,原因及解決辦法 

產生這個問題的真正原因是c語言執行時找不到適當的程式入口函式,

一般情況下,如果是windows程式,那麼winmain是入口函式,在vs2017中新建專案為「win32專案」

如果是dos控制台程式,那麼main是入口函式,在vs2017中新建專案為「win32控制台應用程式」

而如果入口函式指定不當,很顯然c語言執行時找不到配合函式,它就會報告錯誤。

修改設定適應你的需求

如果是windows程式:

1.選單中選擇 project->properties, 彈出property pages視窗

2.在左邊欄中依次選擇:configuration properties->c/c++->preprocessor,然後在右邊欄的preprocessor definitions對應的項中刪除_console, 新增_windows.

3.在左邊欄中依次選擇:configuration properties->linker->system,然後在右邊欄的subsystem對應的項改為windows(/subsystem:windows)

如果是控制台程式:

1.選單中選擇 project->properties, 彈出property pages視窗

2.在左邊欄中依次選擇:configuration properties->c/c++->preprocessor,然後在右邊欄的preprocessor definitions對應的項中刪除_windows, 新增_console.

3.在左邊欄中依次選擇:configuration properties->linker->system,然後在右邊欄的subsystem對應的項改為console(/subsystem:console)

參考**:

建專案是用的是vs2015下的win 32專案,編譯時出現上述錯誤。

擬採用的解決辦法:專案->屬性->配置屬性->聯結器->系統中的【子系統】設定為  控制台 (/subsystem:console)。

不同的專案或軟體需要修改的配置也不盡相同,可以參照進行嘗試。

常見編譯錯誤(更新中 )

include using namespace std int main 1 已啟動生成 專案 hello1,配置 debug win32 1 hello1.cpp 1 msvcrtd.lib crtexew.obj error lnk2019 無法解析的外部符號 winmain 16,該符號在函式...

VS 2005 編譯錯誤

使用vs2005 建立了乙個windows應用程式,在呼叫dll的時候,出現了以下的錯誤 declspec dllexport 不能與 clr pure 或 clr safe 一起使用 error c3395 answerphone declspec dllexport 不能應用於具有 clrcal...

iOS 各種編譯錯誤彙總

1 error macro names must be identifiers yourproject prefix.pch 原因 因為你弄髒了預處理器巨集,在它處於的時候修改了它 解決方法 configiration選擇all configirations,清空它 然後分別重新定義你的debug,...