【发布时间】:2015-09-07 22:19:21
【问题描述】:
我在我的项目中使用 libpng。现在,我可以编译我的项目: g++ *.cpp `libpng-config --ldflags`
我想切换到使用 CMake 以便于重新编译,但我不知道如何处理 libpng 部分。如何在 CMake 中提供 `libpng-config --ldflags`?
【问题讨论】:
标签: cmake
我在我的项目中使用 libpng。现在,我可以编译我的项目: g++ *.cpp `libpng-config --ldflags`
我想切换到使用 CMake 以便于重新编译,但我不知道如何处理 libpng 部分。如何在 CMake 中提供 `libpng-config --ldflags`?
【问题讨论】:
标签: cmake
我终于用find_package 解决了这个问题。感谢this 博文。
find_package(PNG REQUIRED)
include_directories(${PNG_INCLUDE_DIR})
target_link_libraries(${MY_EXEC} ${PNG_LIBRARY})
【讨论】:
我认为推荐和便携的方式应该使用 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})
【讨论】: