CMake的libake编译选项

tea*_*tea 2 cmake

我在我的项目中使用libpng.现在,我可以用以下代码编译我的项目:g ++*.cpp`libpng-config --ldflags`

我想切换到使用CMake轻松重新编译,但我不知道如何为libpng部分做什么.如何使用CMake提供`libpng-config --ldflags`?

tea*_*tea 9

我终于解决了它find_package.感谢这篇博文.

find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIR})
target_link_libraries(${MY_EXEC} ${PNG_LIBRARY})
Run Code Online (Sandbox Code Playgroud)


Joe*_*oel 6

我认为应该使用 pkg-config 来完成推荐的和可移植的方式,如下所示:

# search for pkg-config
include (FindPkgConfig)
if (NOT PKG_CONFIG_FOUND)
    message (FATAL_ERROR "pkg-config not found")
endif ()

# check for libpng
pkg_check_modules (LIBPNG libpng16 REQUIRED)
if (NOT LIBPNG_FOUND)
    message(FATAL_ERROR "You don't seem to have libpng16 development libraries installed")
else ()
    include_directories (${LIBPNG_INCLUDE_DIRS})
    link_directories (${LIBPNG_LIBRARY_DIRS})
    link_libraries (${LIBPNG_LIBRARIES})
endif ()
add_executable (app_png ${_MYSOURCES} ${LIBPNG_LINK_FLAGS})
Run Code Online (Sandbox Code Playgroud)