该脚本./configure接受3个选项--build,--host和--target.我混淆了他们的角色.它们的区别和语义是什么?
我正在维护一个用C语言编写的遗留项目,并且使用C++编译器运行它是不可行的.由于代码是交叉编译的,因此可以在主机环境中运行单元测试或类似操作.因此,它也可以与C++主机编译器连接,并使用google-test和google-mock.
谷歌模拟的某些功能似乎非常诱人,可用于测试,如调用实际实现和设置调用期望.
我希望能够在C代码中使用它们.我可以看到,确实可以在不使用vtable的情况下使用google-mock,但它需要模板.
有没有办法用google mock模拟裸C函数?
我看到很多冲突信息,希望得到一些澄清。\n构建、主机和目标
\n\n\n\n\n构建知道三个系统名称:您正在构建的机器(构建)、您正在构建的机器(主机)以及 GCC 将为其生成代码的机器(目标)。配置 GCC 时,可以使用 --build=、--host= 和 --target= 指定它们。
\n
实际上,我不明白上面定义中的主机和目标之间有什么区别。
\n\n其他一些页面说
\n\n\n\n\n\xe2\x80\x98host\xe2\x80\x99 是您用来编译代码的机器(或体系结构、或平台);\n \xe2\x80\x98target\xe2\x80\x99 是机器(或架构或平台),旨在运行代码。
\n
这对我来说很有意义,但在这个解释中,主机总是与构建相同吗?我很困惑。
\n\n就我而言,我的配置是让编译器 (GCC) 在 x86_64 计算机上运行,而二进制可执行文件在 ARM 上运行。程序是用C语言编写的,所以编译器是GCC。
\n\n ./configure --build=x86_64 --host=x86_64 --target=arm-linux-gnueabihf\n make\n make install\nRun Code Online (Sandbox Code Playgroud)\n\n听起来像\nbuild,主机都是x86_64,目标是arm。那是对的吗?
\n\n我正在编译自己的嵌入式程序,该程序在 Jenkins 机器(x86_64)上运行。嵌入式程序运行在基于ARM的机器上。
\n