好,所以我有一个现有的项目,该项目可以编译代码,创建可执行文件,并且一切正常(在Linux和Windows上)。
现在...我想向我的项目中添加另一个可执行文件,但是不同之处在于,我想交叉编译该可执行文件。我们正在使用Clang进行所有操作,因此我们可以将--target作为此新目标的编译器标志传递,并且可以正常工作(即代码针对我想要的目标进行编译)。
问题出在链接器上。当我在Windows上时,事情变得很丑陋,因为目标是x86_64-elf,因此link.exe显然不能使用它。如果我们传入-fuse-ld = lld,它将被忽略,因为CMake已将其设置为link.exe。 CMake还添加了一堆Windows特定的垃圾库,例如库,似乎没有办法关闭这些东西。
有没有一种方法可以添加目标并为其提供特定的工具链,或者使用CMake进行类似的操作,而无需使用ExternalProject_Add支持交叉编译特定目标。这是我们之前所做的方式,并且效果很好,但是这种方法有很多缺点。想通了,我会问。