如何解释编译系统应该使用哪种编译器(gcc)
How to explain to perforce-jam build system which compiler (gcc) it should use
我尝试使用制作"helloworld-project"
- 堵塞(性能)构建系统
- C++
- Linux
- arm poky linux gneabi gcc编译程序
helloworld performce jam.cpp
#include <stdio.h>
int main(int args, char* argv[])
{
printf("nnnHello World from HELLOWORLD-PERFORCE-JAM!!!nnnn");
return 0;
}
Jamfile
Echo $(CC) ;
Main helloworld-perforce-jam : helloworld-perforce-jam.cpp ;
如果我将在没有Jam构建系统的情况下直接使用arm-poky-linux-gneabi-gcc,则没有阻塞程序,如:
ygyerts@ygyerts:$ /home/user/full_path/arm-poky-linux-gnueabi-gcc helloworld-perforce-jam.cpp
将创建一个用于ARM体系结构的可执行文件。
如果我使用默认的gcc(由Jam定义),就没有阻塞器,例如:
ygyerts@ygyerts:$ jam
cc
...found 66 target(s)...
...updating 1 target(s)...
Link helloworld-perforce-jam
Chmod1 helloworld-perforce-jam
...updated 1 target(s)...
有一个可执行文件用于x86体系结构!!!将被创建。
但这个想法是使用自定义的gcc编译器(/home/user/full_path/arm-poky-linux-gneabi-gcc)。这是一个障碍,我不知道怎么。。。
我试着玩果酱可执行文件的参数,如下所示:
ygyerts@ygyerts:$ jam -s CC=/home/user/full_path/arm-poky-linux-gnueabi-gcc
/home/user/full_path/arm-poky-linux-gnueabi-gcc
...found 66 target(s)...
...updating 2 target(s)...
C++ helloworld-perforce-jam.o
Link helloworld-perforce-jam
helloworld-perforce-jam.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
/home/ygyerts/TOOLING/TeamCity/TeamCity-9.1.7/buildAgent/work/e58af29ade3fd40c/fsl-community-bsp/build/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -o helloworld-perforce-jam helloworld-perforce-jam.o
...failed Link helloworld-perforce-jam ...
...failed updating 1 target(s)...
...updated 1 target(s)...
请帮助我了解如何设置所有所需的环境,以使用arm-linux架构构建helloworld,而不是使用x86_64-linux。。。
我认为问题是你已经设置了C编译器的路径,但C++编译器(通常也是链接器)
尝试:jam -sCC=/home/user/full_path/arm-poky-linux-gnueabi-gcc -sC++=/home/user/full_path/arm-poky-linux-gnueabi-gcc
您可能还想添加"-dx"调试标志,它将显示jam实际执行的命令。
如果你觉得很勇敢,请查看Perforce Jamrules(有一个名为SetCommonCompiler的规则可以帮助设置交叉编译器):https://swarm.workshop.perforce.com/projects/perforce_software-p4/files/2016-1/Jamrules
有一些配置可以在各种平台上构建,并带有适当的编译器标志,但这不适合胆小的人。
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 初始化迭代器错误 C++ 在 GCC 编译器中
- 编译器资源管理器和 GCC 具有不同的输出
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- 交叉编译:特殊的交叉编译器还是只是带有选项 -march 的 gcc?
- #pragma(*诊断)当将Clang分析器与GCC编译器混合时
- 为什么 std::count 比 MSVC 编译器的普通循环慢,但与 GCC 相等?
- 为什么 gcc 编译器标志未知?
- 不同版本的编译器(例如GCC)是否会产生不同的性能?
- 如何使用 GCC 编译器优化创建静态库?
- C++使用旧编译器GCC 4.4.0在结构列表中查找字符串
- Meson选择了错误的编译器(GCC而不是在Clang上)
- 他们实现的开源C编译器(gcc,clang)的实际标准在哪里
- 编译器(GCC)如何处理C 的访问控件
- Netbeans 8.1(适用于 C/C++)找不到我的编译器(gcc-6.0.0 开发版本)
- 如何为在 .props 文件中声明的非本机 VC 编译器 (GCC) 实现 MSBUILD 文件跟踪功能 (跟踪器.ex
- 编译器(gcc)能否保证c ++循环
- 我如何在 Xcode 中使用指定的编译器 GCC-MP-4.7
- 编译器(GCC)交叉编译(对windows)如何在非源目录下构建它
- 如何解释编译系统应该使用哪种编译器(gcc)