首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在编译期间确定MAGICKCORE_QUANTUM_DEPTH和MAGICKCORE_HDRI_ENABLE?

如何在编译期间确定MAGICKCORE_QUANTUM_DEPTH和MAGICKCORE_HDRI_ENABLE?
EN

Stack Overflow用户
提问于 2016-07-23 20:35:29
回答 1查看 2K关注 0票数 3

我有一个与ImageMagick 6接口的库。在编译过程中,我会收到以下编译警告(由我推荐为错误)。

我知道在编译过程中使用-DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0显式定义这些值将解决这个问题(在我的特定安装上),但是,由于我正在编写CMake配置文件,使它们尽可能可移植,这感觉很脆弱,我真的希望有更好的方法。

这让我回到我的问题:是否有一种方法可以使用cmake、bash或类似于我所链接的库的特定版本来确定MAGICKCORE_HDRI_ENABLE和MAGICKCORE_QUANTUM_DEPTH?

代码语言:javascript
复制
/usr/include/ImageMagick-6/magick/magick-config.h:29:3: error: #warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default" [-Werror=cpp]
 # warning "you should set MAGICKCORE_QUANTUM_DEPTH to sensible default set it to configure time default"
   ^
/usr/include/ImageMagick-6/magick/magick-config.h:30:3: error: #warning "this is an obsolete behavior please fix your makefile" [-Werror=cpp]
 # warning "this is an obsolete behavior please fix your makefile"
   ^
/usr/include/ImageMagick-6/magick/magick-config.h:52:3: error: #warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default" [-Werror=cpp]
 # warning "you should set MAGICKCORE_HDRI_ENABLE to sensible default set it to configure time default"
   ^
/usr/include/ImageMagick-6/magick/magick-config.h:53:3: error: #warning "this is an obsolete behavior please fix yours makefile" [-Werror=cpp]
 # warning "this is an obsolete behavior please fix yours makefile"
   ^
cc1plus: all warnings being treated as errors
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-23 20:35:29

在写这个问题的时候,我遇到了一个答案。我将把它总结为关于这个角度的其他问题,略有不同。

Imagemagick附带了一个名为Magick++-config的安装工具(Ubuntu16.04),我在/usr/lib/x86_64-linux-gnu/ImageMagick-6.8.9/bin-Q16/Magick++-config下找到了这个实用程序。下面是我最后用来提取相关构建选项的cmake代码片段。

代码语言:javascript
复制
find_package(ImageMagick 6.7 COMPONENTS Magick++ MagickCore)
if(ImageMagick_FOUND)
    # Find Imagemagick Library directory
    get_filename_component(MAGICK_LIB_DIR ${ImageMagick_MagickCore_LIBRARY} DIRECTORY)
    # Find where Magick++-config lives
    file(GLOB_RECURSE MAGICK_CONFIG FOLLOW_SYMLINKS ${MAGICK_LIB_DIR}/Magick++-config)
    # Ask about CXX and lib flags/locations
    set(MAGICK_CONFIG ${MAGICK_CONFIG} CACHE string "Path to Magick++-config utility")
    execute_process(COMMAND "${MAGICK_CONFIG}" "--cxxflags" OUTPUT_VARIABLE MAGICK_CXX_FLAGS)
    execute_process(COMMAND "${MAGICK_CONFIG}" "--libs" OUTPUT_VARIABLE MAGICK_LD_FLAGS)
    # Add these to cache
    set(MAGICK_CXX_FLAGS "${MAGICK_CXX_FLAGS}" CACHE string "ImageMagick configuration specific compilation flags." )
    set(MAGICK_LD_FLAGS  "${MAGICK_LD_FLAGS}" CACHE string "ImageMagick configuration specific linking flags.")
    # Split into list:
    string(REGEX MATCHALL "([^\ ]+)" MAGICK_CXX_FLAGS "${MAGICK_CXX_FLAGS}")
    string(REGEX MATCHALL "([^\ ]+)" MAGICK_LD_FLAGS "${MAGICK_LD_FLAGS}")
    # Remove trailing whitespace (CMAKE warns about this)
    string(STRIP "${MAGICK_CXX_FLAGS}" MAGICK_CXX_FLAGS)
    string(STRIP "${MAGICK_LD_FLAGS}" MAGICK_LD_FLAGS)

    target_compile_options(<project> ${MAGICK_CXX_FLAGS})
    target_link_libraries(<project> ${MAGICK_LD_FLAGS})

endif(ImageMagick_FOUND)

Source

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38546196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档