我正在开发两个库A和B,其中B取决于A,两者都在自己的Git存储库中进行管理。这些库是用CMake构建的,并安装在标准的UNIX目录中。在安装过程中,还会安装.pc
文件,供pkg-config
使用。库B使用pkg-config
来查找库A,因此有必要将库A安装在系统范围内,其中make install
或PKG_CONFIG_PATH
被设置为相应的目录。首选使用Jenkins,CMake和pkg-config构建多个项目的方法?
现在,我使用Jenkins在远程机器上构建库A.不幸的是,库B无法建立,因为不符合依赖关系(pkg-config
找不到库A)。在预构建步骤中设置路径不起作用,因为这些命令在其自己的shell中运行。
的问题是
- 我可以采用某种
make install
库阿?或者, - 我可以以某种方式将CMake指向
/var/lib/jenkins/jobs/libA/install_dir/lib
? - 有没有更好的方法来建立具有相互依赖库的项目?
实际上它们是建立在同一台(远程)机器上的。我想说的是,Jenkins或CMake可能因为权限而不易安装。不幸的是,你的第一个答案真的不能帮助我,因为图书馆B仍然试图通过'pkg-config'找到图书馆A,怎么能在这里“下载”一个神器的帮助? – matthias 2012-07-27 06:24:18
噢,当你说你用jenkins在远程机器上建立库A时,我认为这意味着这两个库建立在不同的机器上。如果您因为权限而无法安装构建库,您是否可以设置chroot来构建?那么你应该能够安装没有权限问题的库,或覆盖生成机器上的其他软件。 – user1013341 2012-07-27 14:53:05
此解决方案不好,因为文档说工件不应该大于100MB。当您使用调试符号编译多个库时,可以轻松超越。 – DBedrenko 2018-02-07 19:55:29