【发布时间】:2017-06-26 22:10:35
【问题描述】:
我有同一个库libabc.so 的两个版本,我必须将我的程序链接到一个版本,并在执行时加载另一个版本(加载程序在运行可执行文件时应该加载另一个库)。
我将两个版本放在不同的路径中,如何使用 cmake 指定?
我希望我已经说清楚了,谢谢。
【问题讨论】:
-
load another version when it's executed.- 你的意思是 loader 应该在运行可执行文件时加载 another 库吗?不确定 CMake 是否会以一般方式提供帮助。但是,如果两个库文件具有相同的名称但位置不同,那么您可以调整 RPATH 以实现该目标。顺便说一句,.o文件通常是 目标文件,而不是 库。 -
@Tsyvarev 非常感谢,实际上我是 C++ 的新手,我相信你是对的,
loader should load another library when executable is run,是的,它们同名,.o是一个错字,谢谢! -
那么您可能想了解RPATH handling in CMake。
标签: c++ path cmake linker load