cmake构建可执行文件,具有依赖关系的相对路径(可重定位可执行文件)

时间:2018-01-18 01:11:38

标签: c++ cmake executable configure

我有一个使用cmake作为其编译器的包。如果我首先使用包管理器安装依赖项,则运行cmake例如

$ sompackage-manager install depend1 depend2

$ wget http://a.b.c/somepackage.tgz

$ tar -xf somepackage.tgz

$ cd somepackage/

$ ls
CI     CMakeFiles  CONTRIBUTING.md   README.md 
CMakeCache.txt CMakeLists.txt  doc      LICENSE
cmake .

这样可以正常工作。 cmake找到所有依赖项,项目将在可执行文件所在的构建目录中创建一个名为bin的文件夹。然后,我可以将可执行文件移动到id。我假设可执行文件要么知道依赖项的完整路径,要么有一个要检查的完整路径列表。

喜欢这样做的是:   创建一个像$HOME/newpackage这样的文件夹。然后将依赖项(依赖项恰好使用配置脚本)安装到该目录,例如

$ mkdir $HOME/newpackage/depend1

$ wget http://a.b.c/depnd1.tgz

$ tar -xf depend1.tgz

$ cd depend1

$ ./configure --prefix=$HOME/newpackage/depend1

将所有依赖项安装到$HOME/newpackage/depend1后 然后我想回到somepackage构建目录并告诉cmake将包构建到$HOME/newpackage/目录,还要查找相对于可执行文件所在的依赖项,即{{1}这样的路径}。最终结果将允许我使用可执行文件和依赖项文件夹移动./目录,而不会破坏任何路径。

我无法找到正确的cmake选项,或者是否可以使用它们。

这可能与cmake有关,前进的最佳方式是什么?

0 个答案:

没有答案