неразрешенный внешний символ в затмении cdt - PullRequest
0 голосов
/ 10 июля 2011

Я пытаюсь собрать файл cpp, используя eclipse cdt.Линкер выдает «неразрешенный внешний символ», однако путь к файлу lib, который содержит реализацию для функции, указан в переменной среды LIB на Project properties->C/C++ Build->Environment

Что я делаю не так?

UPD Я пытаюсь собрать файл .На пути есть lib RpcRT4.Lib C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib\

И компоновщик не работает:

**** Build of configuration Debug for project test cpp ****

**** Internal Builder is used for build               ****
link /debug /nologo /OUT:test cpp.exe main.obj
main.obj : error LNK2019: unresolved external symbol __imp__RpcStringFreeA@4 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)"(?Initialize_CreateWindowClass@@YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__RegisterClassA@4 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)" (?Initialize_CreateWindowClass@@YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__UuidToStringA@8 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)" (?Initialize_CreateWindowClass@@YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__UuidCreate@4 referenced in function "bool __cdecl Initialize_CreateWindowClass(void)" (?Initialize_CreateWindowClass@@YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__DefWindowProcA@16 referenced in function "long __stdcall SkypeAPITest_Windows_WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?SkypeAPITest_Windows_WindowProc@@YGJPAUHWND__@@IIJ@Z)
main.obj : error LNK2019: unresolved external symbol __imp__PostQuitMessage@4 referenced in function "long __stdcall SkypeAPITest_Windows_WindowProc(struct HWND__ *,unsigned int,unsigned int,long)" (?SkypeAPITest_Windows_WindowProc@@YGJPAUHWND__@@IIJ@Z)
main.obj : error LNK2019: unresolved external symbol __imp__UnregisterClassA@8 referenced in function "void __cdecl DeInitialize_DestroyWindowClass(void)" (?DeInitialize_DestroyWindowClass@@YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__CreateWindowExA@48 referenced in function "bool __cdecl Initialize_CreateMainWindow(void)" (?Initialize_CreateMainWindow@@YA_NXZ)
main.obj : error LNK2019: unresolved external symbol __imp__DestroyWindow@4 referenced in function "void __cdecl DeInitialize_DestroyMainWindow(void)" (?DeInitialize_DestroyMainWindow@@YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__DispatchMessageA@4 referenced in function "void __cdecl Global_MessageLoop(void)" (?Global_MessageLoop@@YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__TranslateMessage@4 referenced in function "void __cdecl Global_MessageLoop(void)" (?Global_MessageLoop@@YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__GetMessageA@16 referenced in function "void __cdecl Global_MessageLoop(void)" (?Global_MessageLoop@@YAXXZ)
main.obj : error LNK2019: unresolved external symbol __imp__PostMessageA@16 referenced in function "void __cdecl Global_InputProcessingThread(void *)" (?Global_InputProcessingThread@@YAXPAX@Z)
main.obj : error LNK2019: unresolved external symbol __imp__SendMessageA@16 referenced in function "void __cdecl Global_InputProcessingThread(void *)" (?Global_InputProcessingThread@@YAXPAX@Z)
main.obj : error LNK2019: unresolved external symbol __imp__RegisterWindowMessageA@4 referenced in function _main
test cpp.exe : fatal error LNK1120: 15 unresolved externals
Build error occurred, build is stopped
Time consumed: 2438  ms.  

И настройки среды для проекта настройки http://img830.imageshack.us/img830/847/eclipsecdtlib.png

1 Ответ

1 голос
/ 12 июля 2011

Мне не совсем ясно, сделали ли вы это, основываясь на этом вопросе, но простого добавления каталога в путь поиска вашего компоновщика недостаточно для любого компилятора / компоновщика, который я когда-либо использовал. Там могут быть сотни разных библиотек, даже разные версии одной и той же библиотеки, и компоновщик понятия не имеет, какие вы делаете и не хотите. Вы должны явно указать это для связи с библиотекой, используя соответствующий параметр.

Похоже, вы используете компоновщик Microsoft, который я никогда не использовал, поэтому я не могу помочь вам с конкретным флагом, но должно быть достаточно легко найти его в документации, если это проблема , Я предполагаю, что в Eclipse есть метод указания этого в графическом интерфейсе, который должен быть универсальным для различных поддерживаемых им компиляторов.

...