簡體   English   中英

VC ++ LNK2001:僅在64位上編譯時,未解析的外部符號

[英]VC++ LNK2001: unresolved external symbol only when compiling on 64bit

我已經制作了一個可以在32位模式下正常編譯的dll,但是在64位模式下進行編譯時(在32位Box交叉編譯和本機64位Box上)都出現上述錯誤。 它抱怨的符號如下:

"struct return_info_ * __cdecl patch_file(char *,char *,char *)"

我是C ++的新手,但我認為我已經正確定義了結構和簽名。 結構“ return_info_”的定義如下:

typedef struct return_info_
{
    char *message;
    int code;
} return_info;

在同一標頭中,我具有該函數的簽名:

return_info* patch_file(char* oldfile, char* newfile, char* patchfile);

全部都在本地c / c ++代碼中,該代碼被編譯為靜態鏈接庫。 然后,有了我們的主庫,該庫鏈接到此庫,它是與clr兼容的二進制文件。 為什么64位編譯器會引發這些錯誤?

標頭中的聲明看起來是正確的,但是由於某種原因,在您的64位版本中,未找到實際的實現。

這是在您的圖書館中定義的嗎? 它的64位版本可能未正確編譯。

如果此功能是您應用程序的一部分,請確保在64位構建過程中也包含了正確的源文件。

暫無
暫無

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

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