[英]error LNK2019: unresolved external symbol “…” referenced in function _main
[英]error LNK2019: unresolved external symbol referenced in function main
我試圖用C ++運行我的簡單匯編代碼。我只有兩個文件“.cpp”文件和“.asm”文件。 在編譯時會出現錯誤(見下文)。如果有人可以提供幫助,我將不勝感激...... :)
這是我的“main.cpp”文件
#include <iostream>
using namespace std;
extern "C" int GetValueFromASM();
int main(int argc, char *argv[]){
cout<<"value is:"<<GetValueFromASM()<<endl;
cin.get();
return 0;
}
我還有一個簡單的“asm.asm”文件
.code
GetValueFromASM proc
mov rax,3254
ret
GetValueFromASM endp
end
當嘗試構建我得到此錯誤:
1>main.obj : error LNK2019: unresolved external symbol GetValueFromASM referenced in
function main
1>..\visual studio 2012\Projects\AllAssembly\x64\Debug\AllAssembly.exe : fatal error LNK1120: 1 unresolved externals
我試過去物業 - >鏈接 - >附加圖書館目錄並改變路徑,但它不起作用。
我也試過去LINKER-> SYSTEM-> SUBSYSTEM並選擇“Windows(/ SUBSYSTEM:WINDOWS)”或“Console(/ SUBSYSTEM:CONSOLE)”但兩個都沒有工作。 任何人都可以幫助!! ..非常感謝
extern“C”表示前導下划線(c風格函數命名)。 只需將您的函數添加到.asm文件中,它就會開始鏈接。
UPD:如果您的項目沒有構建,請確保您包含MASM構建自定義:轉到項目上下文菜單 - >構建自定義... - >選中masm的復選框(.targets,.props)。
然后轉到.asm文件的屬性,並選擇項類型為“Microsoft宏匯編程序”。
我把它與32位混淆了。 :(
所以這適用於64位。
section .code
global GetValueFromASM
GetValueFromASM:
...
我沒有對代碼進行任何更改。我只是更改了一些配置,如“Arty”所示。
方法如下:右鍵單擊您的項目 - >轉到構建自定義 - >檢查MASM - >單擊確定然后轉到.asm文件的屬性,並選擇項類型為“Microsoft宏匯編程序”。
你做完了!!感謝Arty&Devolus的幫助。
對於類似的問題可以有所幫助: http : //scriptbucket.wordpress.com/2011/10/19/setting-up-visual-studio-10-for-masm32-programming/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.