在windows上与cygwin、distcc和cmake交叉编译

在windows上与cygwin、distcc和cmake交叉编译,windows,cygwin,cross-compiling,distcc,Windows,Cygwin,Cross Compiling,Distcc,我希望我的Jenkins安装(在Windows上)使用带distcc的从机来减少编译时间 我在从机上使用Cygwin运行distcc,但在配置过程中遇到问题,即“/configure”。配置会进行编译器检查,但由于我正在使用CMake交叉编译嵌入式设备以生成构建文件,因此我假设不需要将所有这些信息指定给distcc 我尝试使用以下方法明确设置它: 导出CC=path/to/compiler 但是,这会导致错误: $ ./configure --prefix=/usr/local checking

我希望我的Jenkins安装(在Windows上)使用带distcc的从机来减少编译时间

我在从机上使用Cygwin运行distcc,但在配置过程中遇到问题,即“/configure”。配置会进行编译器检查,但由于我正在使用CMake交叉编译嵌入式设备以生成构建文件,因此我假设不需要将所有这些信息指定给distcc

我尝试使用以下方法明确设置它:

导出CC=path/to/compiler

但是,这会导致错误:

$ ./configure --prefix=/usr/local
checking build system type... x86_64-unknown-cygwin
checking host system type... x86_64-unknown-cygwin
checking for gcc... path/to/compiler.exe
checking whether the C compiler works... yes
checking for C compiler default output file name... conftest.elf
checking for suffix of executables... .elf
checking whether we are cross compiling... configure: error: in `/distcc-3.2rc1':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
我相信--build配置正确,因为我将通过Cygwin运行distcc,但是其他变量的值还不清楚


有人成功地使用了这种设置吗?我缺少任何其他设置或有任何提示/提示资源?似乎没有在Windows计算机上配置的方法。

通常来自
/configure--help
您可以看到通知生成系统要编译将在不同系统(主机)上运行的程序的选项

系统类型:
--build=build为构建上的构建配置 [猜测]
--主机=主机交叉编译以生成要运行的程序 在主机上[构建]

另请参见汽车制造:


通常来自
/configure--help
您可以看到通知生成系统要编译将在不同系统(主机)上运行的程序的选项

系统类型:
--build=build为构建上的构建配置 [猜测]
--主机=主机交叉编译以生成要运行的程序 在主机上[构建]

另请参见汽车制造:


对于可能不熟悉这种安装类型的任何其他人,本例中的编译器是指用于构建distcc程序本身(GCC和Make)的编译器


在我的情况下,由于我将在所有机器上的Cygwin上运行distcc,所以我不需要交叉编译-因此我可以简单地让automake guess build/host/target选项(需要将config.guess和config.sub文件从automake移动到distcc中)。

对于任何不熟悉这种安装类型的其他人,本例中的编译器是指用于构建distcc程序本身(GCC和Make)的编译器


在我的例子中,因为我将在所有机器上的Cygwin上运行distcc,所以我不需要交叉编译-因此我可以简单地让automake guess build/host/target选项(需要将config.guess和config.sub文件从automake移动到distcc).

查看config.log以查看错误背后的原因。@matzeri
/conftest.elf:无法执行二进制文件:Exec格式
。配置正在测试.elf文件是否可以运行。如何正确地告诉distcc我正在交叉编译?查看config.log以查看错误背后的原因。@matzeri
/conftest.elf:无法执行二进制文件:Exec格式
。配置正在测试.elf文件是否可以运行。我如何正确地告诉distcc我正在交叉编译?谢谢你的回复。您能否澄清主机是指:a.)distcc将在其上运行的系统类型,还是b.)从我指定的编译器编译的代码将在其上运行的系统类型?(即我的微控制器)我仍然认为我不必指定这些编译器设置,因为CMake应该将我从它们中完全抽象出来。谢谢你的回复。您能否澄清主机是指:a.)distcc将在其上运行的系统类型,还是b.)从我指定的编译器编译的代码将在其上运行的系统类型?(即,我的微控制器)我仍然认为我不必指定这些编译器设置,因为CMake应该将我从它们中完全抽象出来。