所以我目前正在做一个小学习项目。
我有一个由多个 *.cpp *.hpp 等文件编译而成的项目/程序。该项目(实际的 bin 可执行文件)是使用 Make 构建的(存在 CMakeLists.txt)。该项目在旧的 RedHat 5 OS 64 上运行,并于 2013 年制作。我试图弄清楚如何将整个项目移动并重新编译到现代操作系统(例如 Ubuntu 或 Mint 19.3 64x) )。
1.解决这个问题的第一步是什么?
2.有没有办法“扫描”Make 项目设置文件并“查看”需要哪些库、组件、程序?
3.ldd
在可执行文件上运行会显示所需的库......
我不是一个专家程序员(只是一个业余爱好者,甚至还不够)。
答案1
基本上ldd
是一个很好的起点。如果 RHEL 5 已经有了,yum whatprovides
那么将 ldd 输出转换为编译软件所需的软件包列表将非常容易。
请注意CMakeList.txt
与 对应cmake
,而不是直接与 对应make
。cmake
生成Makefile
然后由 执行make
。
在新系统上开始安装cmake
之前确定的软件包列表。根据项目类型和依赖关系,这可能很容易,甚至不可能。如果您的项目使用 QT3,则在 RHEL7 上可能只有 QT4。这种依赖性问题需要修改项目文件。
复制文件,并尝试cmake .
以make
.如果您看到丢失.h
文件的错误,请再次尝试yum whatprovides
查找所需的包。
祝你好运,因为一路上可能会有更多绊脚石。 :-)