我在我的项目中使用libpng。现在,我可以编译我的项目:g ++ * .cpp`libpng-config --ldflags`
我想切换到使用CMake轻松重新编译,但我不知道该怎么做libpng部分。如何使用CMake提供`libpng-config --ldflags`?
答案 0 :(得分:5)
我终于使用find_package
解决了这个问题。感谢this博文。
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIR})
target_link_libraries(${MY_EXEC} ${PNG_LIBRARY})
答案 1 :(得分:4)
我认为应该使用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})