0

我发现了两个编译器的二进制文件,如下所示 -

/usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc

/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux/k1om-mpss-linux-gcc

我已经能够使用它们编译一个简单的测试程序并在 xeon phi 上成功运行可执行文件。

这两个是一样的吗?为什么他们在不同的位置?它们背后的命名约定是什么?

编辑:结果*gcc -v。两者都是一样的,除了$COLLECT_GCC

Using built-in specs. COLLECT_GCC=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux/k1om-mpss-linux-gcc COLLECT_LTO_WRAPPER=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/libexec/k1om-mpss-linux/gcc/k1om-mpss-linux/4.7.0/lto-wrapper Target: k1om-mpss-linux Configured with: /sandbox/build/tmp/tmp/work/x86_64-nativesdk-mpsssdk-linux/gcc-cross-canadian-k1om-4.7.0+mpss3.5.1-1/gcc-4.7.0+mpss3.5.1/configure --build=x86_64-linux --host=x86_64-mpsssdk-linux --target=k1om-mpss-linux --prefix=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr --exec_prefix=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr --bindir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux --sbindir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om-mpss-linux --libexecdir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/libexec/k1om-mpss-linux --datadir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/share --sysconfdir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/etc --sharedstatedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/com --localstatedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/var --libdir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/lib/k1om-mpss-linux --includedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/include --oldincludedir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/include --infodir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/share/info --mandir=/opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/share/man --disable-silent-rules --disable-dependency-tracking --with-libtool-sysroot=/sandbox/build/tmp/tmp/sysroots/x86_64-nativesdk-mpsssdk-linux --with-gnu-ld --enable-shared --enable-languages=c,c++ --enable-threads=posix --disable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu --enable-libstdcxx-pch --program-prefix=k1om-mpss-linux- --enable-target-optspace --enable-lto --enable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap --with-system-zlib --with-linker-hash-style=gnu --enable-cheaders=c_global --with-local-prefix=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux/usr --with-gxx-include-dir=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux/usr/include/c++ --with-build-time-tools=/sandbox/build/tmp/tmp/sysroots/x86_64-linux/usr/k1om-mpss-linux/bin --with-sysroot=/opt/mpss/3.5.1/sysroots/k1om-mpss-linux --with-build-sysroot=/sandbox/build/tmp/tmp/sysroots/knightscorner --disable-libunwind-exceptions --disable-libssp --disable-libgomp --disable-libmudflap --with-mpfr=/sandbox/build/tmp/tmp/sysroots/x86_64-nativesdk-mpsssdk-linux --with-mpc=/sandbox/build/tmp/tmp/sysroots/x86_64-nativesdk-mpsssdk-linux --enable-nls --enable-__cxa_atexit Thread model: posix gcc version 4.7.0 20110509 (experimental) (GCC)

4

1 回答 1

0

您应该会发现 /usr/linux-k1om-4.7/bin/x86_64-k1om-linux-gcc 实际上是指向 /opt/mpss/3.5.1/sysroots/x86_64-mpsssdk-linux/usr/bin/k1om 的符号链接-mpss-linux/k1om-mpss-linux-gcc。因此,从字面上看,它们是相同的二进制文件。

在 /opt/mpss 中,所有内容都组织在 MPSS 版本号下。无论 MPSS 版本如何,/usr/linux-k1om-4.7 中的路径都保持不变。

命名似乎有点失控 - x86_64 是针对运行交叉编译器的架构,k1om 是针对您正在编译的架构(k 代表 knights - 当前协处理器的代号为 knights corner),并且当然,4.7是编译版本。

今天我的头脑不是特别敏锐,所以我不太了解有关构建和主机配置的问题。

编辑 - 啊,我看到你的另一篇文章(32319745)以及那里关于构建和主机配置的解释。讨论的还很远,我就悄悄溜过去听听学习。

于 2015-09-02T00:37:39.993 回答