开发者

Undefined OLE references in external library even when linking with libole32

开发者 https://www.devze.com 2023-02-02 12:41 出处:网络
Using MINGW, I\'m trying to link my C code with a static C++ library that performs some OLE operations:

Using MINGW, I'm trying to link my C code with a static C++ library that performs some OLE operations:

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

Unfortunately, I get this:

../../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

The only solution I can find is to link with libole32, but as you can see, I'm already doing that.

Any other ideas?


libuuid is where these things should be found.

Except VariantInit, which is in liboleaut32.

0

精彩评论

暂无评论...
验证码 换一张
取 消