问题描述
我在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_package
或find_library
添加的库在链接器命令行(/app/lib/libspdlog.a
,/app/lib/libbar.so
)上以其完整路径指定,并且可以正常链接。
手动指定的仅显示为-lfoo
。 libfoo.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 (将#修改为@)