0

我有两个二进制文件,它们是在 Linux 机器上编译的简单 c++ 程序。第一个二进制文件 - 称为 my_native_prog - 使用构建工具(g++、as 等)、库和构建机器上的标准头文件。第二个二进制文件 - 称为 my_toolchain_prog - 使用来自工具链的构建工具,该工具链具有所有相同构建工具的不同版本。

我如何确认 my_toolchain_prog 是使用工具链的头文件/库而不是构建机器本地的头文件/库正确编译的?

工具链的目的是交叉编译特定 Linux 版本的代码。

4

1 回答 1

1

如果my_toolchain_prog是使用调试信息构建的,那么它可能包含它使用的头文件的路径,但如果没有调试信息,则无法从编译的代码中找到使用了哪些头文件。

您可以运行ldd my_toolchain_progwhich 将向您显示共享库依赖项,并可能显示libstdc++.so链接到哪个版本的二进制文件,这通常表明它是使用哪个工具链构建的(可以覆盖一些东西,例如,您使用较旧的 GCC 构建并链接从较新的图书馆到图书馆,但这很不寻常)

于 2013-05-17T23:45:01.683 回答