我有一个 linux 项目,我想移植到 windows。在 Linux 下,当我调用 make ARCH=win
x86_64-w64-mingw32-g++
问题是我需要的一些 header (tcl.h 和 friend )位于 '/usr/include'
下,如果我使用 -I
传递该目录> flag 对于像 stdlib.h
这样的 header ,我会遇到 header 冲突,这对于 Windows 来说显然是不同的。
除了将所需的 tcl header 复制到另一个位置之外,还有其他解决方法吗?
最佳答案
编译器将按顺序查找头文件。但是不,你不能挑选头文件位置。
您可以尝试解决此问题的解决方案是使用 -I/usr
并使用 sed
修补您的项目用于转换所需 header 的实用程序,如 <tcl.h>
至 <include/tcl.h>
.最重要的是,您可以使用预处理器来避免每次为项目打补丁。
关于linux - 交叉编译时避免头文件冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46609270/