我有两个二进制文件,它们是在Linux机器上编译的简单c ++程序。第一个二进制文件 - 称为my_native_prog - 使用构建机器上标准的构建工具(g ++,as等),库和头文件。第二个二进制文件 - 称为my_toolchain_prog - 使用工具链中的构建工具,该工具链具有所有相同构建工具的不同版本。
如何使用工具链的头文件/库确认my_toolchain_prog是否正确编译,而不是构建机器本地编译的那些?
工具链的目的是交叉编译特定Linux版本的代码。
答案 0 :(得分:1)
如果my_toolchain_prog
是使用调试信息构建的,那么它可能包含它所使用的标头的路径,但是如果没有调试信息,则无法找到编译代码中使用的标头。
您可以运行ldd my_toolchain_prog
,它会显示共享库依赖项,并且可能会显示该二进制文件链接到哪个libstdc++.so
版本,通常表示哪个工具链是建立的(它可以覆盖的东西,例如你用较旧的GCC构建并从较新的GCC链接到库,但这将是不寻常的)