使用共享库依赖项运行Cmake构建的可执行文件

使用共享库依赖项运行Cmake构建的可执行文件,cmake,Cmake,我有一个Cmake可执行文件,它是使用ADD\u executable创建的。 可执行文件需要(指向)已创建的共享库 也是项目的一部分 作为最后一步,我希望将此可执行文件作为构建过程的一部分运行,以 为构建创建一些附加文件 所以 但是,当自定义命令运行时,会出现错误 .../foo: error while loading shared libraries: libbar.so.1: cannot open shared object file: No such file or director

我有一个Cmake可执行文件,它是使用
ADD\u executable
创建的。 可执行文件需要(指向)已创建的共享库 也是项目的一部分

作为最后一步,我希望将此可执行文件作为构建过程的一部分运行,以 为构建创建一些附加文件

所以

但是,当自定义命令运行时,会出现错误

.../foo: error while loading shared libraries: libbar.so.1: cannot open shared object file: No such file or directory
make[2]: *** [out1]  Error 127

make: *** [all] Error 2
问题是没有为可执行文件设置
LD\u LIBRARY\u路径
,以加载库
libbar.so.1
。如何以跨平台的方式在cmake中设置加载库设置。 我不想使用RPATH,因为它实际上将这些路径嵌入到可执行文件中,而我
不需要。

您的问题有点奇怪,默认情况下,CMake使用构建树中库的完整rpath创建可执行文件,并在安装它们时删除rpath。所以默认行为就是你想要的。。。您是否更改了有关rpath配置的某些内容?我假设您正在通过在可执行文件的target_link_库中指定库的目标名称来将库链接到可执行文件?
.../foo: error while loading shared libraries: libbar.so.1: cannot open shared object file: No such file or directory
make[2]: *** [out1]  Error 127

make: *** [all] Error 2