【问题标题】:Can't link gegl libary with cmake无法将 gegl 库与 cmake 链接
【发布时间】:2021-12-05 23:45:59
【问题描述】:

我收到错误消息: :-1: Fehler: 错误: gegl-0.4: 找不到链接器输入文件: 没有这样的文件或目录 :-1: Fehler: error: babl-01: linker input file not found: No such file or directory

因此链接器无法找到库或由于未知原因无法链接它们。

我试过了:

cmake_minimum_required(VERSION 3.5)

project(perspective_lines LANGUAGES C)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lm gegl-0.4 babl-01 ")


#export (PKG_CONFIG_PATH="${GIMP_PREFIX}/share/pkgconfig:${GIMP_PREFIX}/lib64/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"")

#add_compile_options(  -L/usr/lib64/libm.so -lm -std=gnu11 -v)
find_package(GTK2 REQUIRED)
include_directories(${GTK2_ATK_INCLUDE_DIR})
include_directories(${GTK2_CAIRO_INCLUDE_DIR})
include_directories(${GTK2_GDKCONFIG_INCLUDE_DIR})
include_directories(${GTK2_GDK_PIXBUF_INCLUDE_DIR})
include_directories(${GTK2_GLIBCONFIG_INCLUDE_DIR})
include_directories(${GTK2_GLIB_INCLUDE_DIR})
include_directories(${GTK2_GTK_INCLUDE_DIR})
include_directories(${GTK2_PANGO_INCLUDE_DIR})

include_directories("${ROOT_SOURCE_DIR}/usr/include/gegl-0.4")
include_directories("${ROOT_SOURCE_DIR}/usr/include/babl-0.1")

include_directories("${ROOT_SOURCE_DIR}/usr/lib64")
include_directories("${ROOT_SOURCE_DIR}/usr/src/debug/glibc-2.34-2.1.x86_64/cc-base/math")
include_directories("${ROOT_SOURCE_DIR}/usr/src/debug/glibc-2.34-2.1.x86_64/")

find_path(LIBGIMP_INCLUDE_DIR libgimp PATH_SUFFIXES gimp-2.0)
find_library(LIBGIMP_LIBRARY NAMES gimp-2.0 libgimp-2.0 PATH_SUFFIXES lib)
find_library(LIBGIMP_UI_LIBRARY NAMES gimpui-2.0 libgimpui-2.0 PATH_SUFFIXES lib)
find_library(LIBGIMP_WIDGETS_LIBRARY NAMES gimpwidgets-2.0 libgimpwidgets-2.0 PATH_SUFFIXES lib)
include_directories(${LIBGIMP_INCLUDE_DIR})


#find_path(LIBGEGL_INCLUDE_DIR libgegl PATH_SUFFIXES gegl-0.4)
#find_library(LIBGEGL_LIBRARY NAMES gegl-0.4 libgegl-0.4 PATH_SUFFIXES lib)
#include_directories(${LIBGEGL_INCLUDE_DIR})

include_directories(${CMAKE_SOURCE_DIR}/src)

set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib64/gcc/x86_64-suse-linux/9;/usr/lib64;/lib64;/usr/x86_64-suse-linux/lib")

set(SOURCES  perspective_lines.c )

add_executable(perspective_lines perspective_lines.c)

target_link_libraries(perspective_lines
  ${GTK2_GLIB_LIBRARY_RELEASE}
  ${GTK2_ATK_LIBRARY_RELEASE}
  ${GTK2_CAIRO_LIBRARY_RELEASE}
  ${GTK2_GDK_LIBRARY_RELEASE}
  ${GTK2_GDK_PIXBUF_LIBRARY_RELEASE}
  ${GTK2_GIO_LIBRARY_RELEASE}
  ${GTK2_GMODULE_LIBRARY_RELEASE}
  ${GTK2_GOBJECT_LIBRARY_RELEASE}
  ${GTK2_GTHREAD_LIBRARY_RELEASE}
  ${GTK2_GTK_LIBRARY_RELEASE}
  ${GTK2_PANGOCAIRO_LIBRARY_RELEASE}
  ${GTK2_PANGO_LIBRARY_RELEASE}
  ${LIBGIMP_LIBRARY}
  ${LIBGIMP_UI_LIBRARY}
  ${LIBGIMP_WIDGETS_LIBRARY})

target_link_libraries(perspective_lines "/usr/lib64/libbabl-0.1.so")
target_link_libraries(perspective_lines "/usr/lib64/libgegl-04.so")
#target_link_libraries(perspective_lines gegl)

install(TARGETS perspective_lines DESTINATION ~/.config/GIMP/2.10/plug-ins/)

这也不起作用: 设置(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lm gegl-0.4 -L /usr/lib64/libgegl-04.so")

我的错误在哪里?

【问题讨论】:

  • This doesn't work also 所以不用它? Where is my mistake ? 你的错误是将gegl-0.4 传递给编译器,不要这样做。 ||天哪,这么多 GTK2_*_STUFF。你不能只使用GTK2_INCLUDE_DIRSGTK2_LIBRARIES吗?
  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: cmake gegl


【解决方案1】:

非常感谢您的回答。 这就是问题所在,而且......(令人尴尬)一个错误的文件名: target_link_libraries(perspective_lines "/usr/lib64/libgegl-0.4.so")

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多