如何在Meson构建系统中添加链接器命令行选项
Meson构建系统添加链接器选项(rpath配置方案)
要在Meson中添加-Wl,-rpath=/usr/local/lib这类链接器选项,保证程序运行时正确加载依赖,可按实际场景选择以下方案:
方案1:针对单个构建目标设置(最推荐)
仅对指定的可执行文件/共享库生效,不会污染其他目标的编译配置,在meson.build中对应目标的配置项添加link_args参数即可:
executable( 'myapp', 'main.cpp', link_args : ['-Wl,-rpath=/usr/local/lib'] )
如果是给共享库添加配置,将executable替换为shared_library即可。
方案2:当前项目所有目标全局生效
如果项目内所有构建产物都需要该rpath配置,可在项目根目录的meson.build开头添加全局链接参数配置:
# 针对C语言目标生效,C++可将language参数改为'cpp',其他语言对应修改前缀即可 add_project_link_arguments('-Wl,-rpath=/usr/local/lib', language: 'c')
方案3:使用Meson原生rpath配置(更规范)
针对安装后运行时的rpath需求,Meson提供了原生的install_rpath参数,无需手动写-Wl前缀,会自动处理跨平台兼容,写法更简洁:
executable( 'myapp', 'main.cpp', install: true, # 支持多个rpath路径用逗号分隔 install_rpath: '/usr/local/lib' )
临时测试:命令行传递参数
如果只是临时测试不需要修改meson.build文件,可在执行meson setup时直接传递链接参数:
# C++项目示例,C语言项目将cpp_link_args改为c_link_args即可 meson setup builddir -Dcpp_link_args="-Wl,-rpath=/usr/local/lib"
内容的提问来源于stack exchange,提问作者user15938505
相关产品推荐
相关产品推荐

