How to fix linking error with CMake for Magick++ on Qt Creator?

35 views Asked by At

I'm trying to integrate Magick++ into my simple Qt application. I've compiled the .lib's myself and they work when imported in a simple Visual Studio console solution.

However, I'm getting a linking error when integrating it in CMake in my Qt Creator project, as if it doesn't recognize the .lib's at all.

add_library(somelib STATIC IMPORTED)
target_include_directories(somelib INTERFACE ${CMAKE_SOURCE_DIR}/Dependencies/Magick/include)
set_target_properties(somelib PROPERTIES
    IMPORTED_CONFIGURATIONS "Debug;Release"
    IMPORTED_LOCATION_RELEASE
    ${CMAKE_SOURCE_DIR}/Dependencies/Magick/lib/release/CORE_RL_Magick++_.lib
    ${CMAKE_SOURCE_DIR}/Dependencies/Magick/lib/release/CORE_RL_MagickCore_.lib
    // ... other .lib's here
    ${CMAKE_SOURCE_DIR}/Dependencies/Magick/lib/release/CORE_RL_zlib_.lib
    IMPORTED_LOCATION_DEBUG
    ${CMAKE_SOURCE_DIR}/Dependencies/Magick/lib/debug/CORE_DB_Magick++_.lib
    ${CMAKE_SOURCE_DIR}/Dependencies/Magick/lib/debug/CORE_DB_MagickCore_.lib
    // ... other .lib's here
    ${CMAKE_SOURCE_DIR}/Dependencies/Magick/lib/debug/CORE_DB_zlib_.lib
)

target_link_libraries(MyApp PRIVATE Qt${QT_VERSION_MAJOR}::Widgets somelib)
LIBCMT.lib(initializers.obj):-1: warning: LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol ParseMetaGeometry referenced in function "public: void __cdecl Magick::Image::adaptiveResize(class Magick::Geometry const &)" (?adaptiveResize@Image@Magick@@QEAAXAEBVGeometry@2@@Z)
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol GravityAdjustGeometry referenced in function "public: void __cdecl Magick::Image::composite(class Magick::Image const &,enum MagickCore::GravityType,enum MagickCore::CompositeOperator)" (?composite@Image@Magick@@QEAAXAEBV12@W4GravityType@MagickCore@@W4CompositeOperator@4@@Z)
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol SetGeometry referenced in function "public: void __cdecl Magick::Image::composite(class Magick::Image const &,enum MagickCore::GravityType,enum MagickCore::CompositeOperator)" (?composite@Image@Magick@@QEAAXAEBV12@W4GravityType@MagickCore@@W4CompositeOperator@4@@Z)
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol SetImageColorspace referenced in function "public: void __cdecl Magick::Image::colorSpaceType(enum MagickCore::ColorspaceType)" (?colorSpaceType@Image@Magick@@QEAAXW4ColorspaceType@MagickCore@@@Z)
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol TransformImageColorspace referenced in function "public: void __cdecl Magick::Image::colorSpace(enum MagickCore::ColorspaceType)" (?colorSpace@Image@Magick@@QEAAXW4ColorspaceType@MagickCore@@@Z)
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol SetPixelChannelMask referenced in function "public: void __cdecl Magick::Image::adaptiveSharpenChannel(enum MagickCore::ChannelType,double,double)" (?adaptiveSharpenChannel@Image@Magick@@QEAAXW4ChannelType@MagickCore@@NN@Z)
CORE_RL_Magick++_.lib(Image.obj):-1: error: LNK2019: unresolved external symbol ExportImagePixels referenced in function "public: void __cdecl Magick::Image::write(__int64,__int64,unsigned __int64,unsigned __int64,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,enum MagickCore::StorageType,void *)" (?write@Image@Magick@@QEAAX_J0_K1AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4StorageType@MagickCore@@PEAX@Z)
CORE_RL_Magick++_.lib(Pixels.obj):-1: error: LNK2001: unresolved external symbol ExportImagePixels
# more logs after this, too many to post here

Am I making some mistake in the CMake code?

0

There are 0 answers