我看到两种可能的方法来解决你的问题。
构建项目时链接器使用LIBRARY_PATH
(并不是LD_LIBRARY_PATH
)
LIBRARY_PATH
gcc 在编译之前使用它来搜索目录
包含静态和共享库需要链接到您的
程序。
LD_LIBRARY_PATH
您的程序使用它来搜索目录
包含共享库编译成功后
并链接。
更多细节: LD_LIBRARY_PATH 与 LIBRARY_PATH
也许你可以尝试
export LIBRARY_PATH=/opt/conda/:$LIBRARY_PATH
在运行介子来构建您的项目之前。
- 第二种解决方案
修改你的介子文件并使用rpath
(选修的)
前面第一个解决方案的替代方案是直接修改 Meson 文件以将一些选项传递给linker.
这是我过去使用过的东西,您可以轻松地适应您的问题:
#
# blaspp
#
blaspp_lib = 'blaspp'
blaspp_lib_dir = '/opt/slate/lib'
blaspp_header_dir = '/opt/slate/include'
blaspp_dep = declare_dependency(
link_args : ['-L' + blaspp_lib_dir, '-l' + blaspp_lib],
include_directories : include_directories(blaspp_header_dir))
executable('test_blaspp',
'test_blaspp.cpp',
build_rpath : blaspp_lib_dir,
install_rpath : blaspp_lib_dir,
dependencies : [blaspp_dep])
更多细节: https://amir.rachum.com/blog/2016/09/17/shared-libraries/(查看“rpath 和 runpath”部分)并查看维基百科:https://en.wikipedia.org/wiki/Rpath