我有內容的「.H」文件是這樣的:MinGW和@N DLL函數連接
#ifndef MY_IMPORT
#define MY_IMPORT __declspec(dllimport) /* !!! */
#endif
#ifndef MY_EXPORT
#define MY_EXPORT __declspec(dllexport)
#endif
#ifdef __cplusplus
extern "C"{
#endif
MY_IMPORT VOID* WINAPI XXX_FUNC(VOID * ARG1, ...);
/* ... */
#ifdef __cplusplus
}
#endif
和我有‘lib.dll’庫,其中出口XXX_FUNC無@N後綴。
當我嘗試建立我的DLL(MYDLL.DLL)至極使用此lib.dll我有GCC消息:
undefined reference to `[email protected]'
我看了很多噸互聯網,包括計算器,但我無法找到解決方案。 鏈接稱爲:
g++ -shared -Wl,--enable-stdcall-fixup mydll.o -L. lib.dll -o mydll.dll
,我可以找到,海灣合作委員會必須設法將 '_ 小鬼 _XXX_FUNC @ 12' 鏈接到 '_ 小鬼 _XXX_FUNC' 和「--enable-stdcall- fixup'只是防止這種情況發生警告的選項,但我的MinGW GCC不會嘗試這樣做。
我已經安裝了MinGW和GCC v4.7。
我在編譯核心dll時定義了'#define MY_IMPORT __declspec(dllexport)',並且在嘗試編譯另一個使用核心dll的dll時沒有定義它,所以MY_IMPORT automaticaly定義爲__declspec(dllimport)頭。當我嘗試鏈接使用核心dll的另一個dll時,會發生問題 – 2013-05-12 14:42:29