flatpak-builder / cmake:链接器未找到与-lfoo链接的库

问题描述

我在flatpak-builder中使用org.kde.Sdk//5.15 1.0.10,其中主程序my_app使用cmake(buildsystem: cmake-ninja); CMakeLists.txt指定了一些库,用于将my_app链接为:

find_package(spdlog)
find_library(BAR_LIB bar)

target_link_libraries(my_app PUBLIC
   spdlog::spdlog
   ${BAR_LIB}
   foo
)

通过find_packagefind_library添加的库在链接器命令行(/app/lib/libspdlog.a/app/lib/libbar.so)上以其完整路径指定,并且可以正常链接。

手动指定的仅显示为-lfoolibfoo.so中存在/app/lib,但是由于链接器调用中没有-L/app/lib,因此它们无法链接:

/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/../../../../x86_64-unknown-linux-gnu/bin/ld.gold: error: cannot find -lfoo

链接器命令(简化)如下所示(为清晰起见而中断):

/run/ccache/bin/c++ -O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -O3 -DNDEBUG -lz -fuse-ld=gold
# ...... my_app source object files
-o my_app
-Wl,-rpath,/app/lib:
/app/lib/libspdlog.a
/app/lib/libbar.so
-lfoo

我应该如何使用flatpak-builder链接到自定义库?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)