在用于构建sc
实用程序的 Ubuntu 13.04 VM 上,依赖项如下所示:
$ ldd sc | grep -i png
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb75c2000)
在我的 Fedora VM 上,该sc
实用程序未正确链接 libpng。它有 libpng15,但它正在尝试链接到 libpng12:
$ ldd sc | grep -i png
libpng12.so.0 => not found
libpng15.so.15 => /lib/libpng15.so.15 (0xb6f40000)
我正在使用 cmake 来构建我的可执行文件,并且我正在使用默认的 FindPNG cmake 文件。我的可执行文件静态链接到配置为使用 libPNG 的 ImageMagick。
find_package(ImageMagick COMPONENTS MagickWand MagickCore REQUIRED)
find_package(ZLIB)
find_package(Threads)
find_package(JPEG)
find_package(PNG)
find_package(LibLZMA)
find_package(OpenMP)
find_package(Cairo)
include_directories(${ImageMagick_INCLUDE_DIRS})
include_directories(${CAIRO_INCLUDE_DIRS})
target_link_libraries(sc
${LIBCAIRO}
${ImageMagick_LIBRARIES}
${JPEG_LIBRARIES}
${PNG_LIBRARIES}
${LIBLZMA_LIBRARIES}
${ZLIB_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${X11_LIBRARIES}
${OpenMP_LIB}
)
我尝试制作自己的 FindPNG cmake 来定位 libpng.so。我仍然得到相同的结果...
有什么办法可以让我的可执行文件链接到用户机器上找到的任何 libpng?