Неопределенные ссылки OLE во внешней библиотеке даже при компоновке с libole32

Используя MINGW, я ' Я пытаюсь связать мой код C со статической библиотекой C ++, которая выполняет некоторые операции OLE:

mingw32-gcc main.o resources.o -o mbcom.exe -L../../Lib/Iup -liup -liupole -lole32 -lcomctl32 -lstdc++ -mwindows

К сожалению, я получаю следующее:

../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x341): undefined reference to `IID_IOleControl'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x9b0): undefined reference to `IID_IViewObject2'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xcb5): undefined reference to `IID_IUnknown'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xce8): undefined reference to `IID_IPersistStorage'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xd1b): undefined reference to `IID_IOleObject'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xd9d): undefined reference to `IID_IUnknown'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xdbf): undefined reference to `IID_IOleClientSite'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xde1): undefined reference to `IID_IOleWindow'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xe03): undefined reference to `IID_IOleControlSite'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xe25): undefined reference to `IID_IDispatch'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0xe51): undefined reference to `IID_IOleInPlaceSite'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x1129): undefined reference to `GUID_NULL'
../../Lib/Iup/libiupole.a(tOleHandler.o):tOleHandler.cpp:(.text+0x124d): undefined reference to `GUID_NULL'
../../Lib/Iup/libiupole.a(tOleInPlaceSite.o):tOleInPlaceSite.cpp:(.text+0xc8): undefined reference to `IID_IOleInPlaceObject'
../../Lib/Iup/libiupole.a(tDispatch.o):tDispatch.cpp:(.text+0x108): undefined reference to `GUID_NULL'
../../Lib/Iup/libiupole.a(tDispatch.o):tDispatch.cpp:(.text+0x137): undefined reference to `VariantInit@4'
../../Lib/Iup/libiupole.a(tOleInPlaceFrame.o):tOleInPlaceFrame.cpp:(.text+0x1d9): undefined reference to `IID_IUnknown'
../../Lib/Iup/libiupole.a(tOleInPlaceFrame.o):tOleInPlaceFrame.cpp:(.text+0x211): undefined reference to `IID_IOleInPlaceUIWindow'
../../Lib/Iup/libiupole.a(tOleInPlaceFrame.o):tOleInPlaceFrame.cpp:(.text+0x22b): undefined reference to `IID_IOleWindow'
../../Lib/Iup/libiupole.a(tOleInPlaceFrame.o):tOleInPlaceFrame.cpp:(.text+0x245): undefined reference to `IID_IOleInPlaceFrame'
collect2: ld returned 1 exit status
mingw32-make: *** [mbcom.exe] Error 1

Единственное решение, которое я могу найти, - это связать с libole32, но, как вы можете видеть, я ' m уже делает это.

Есть еще идеи?

9
задан David Brown 6 January 2011 в 05:18
поделиться