linux - 交叉编译时避免头文件冲突

标签 linux makefile mingw cross-compiling

我有一个 linux 项目,我想移植到 windows。在 Linux 下,当我调用 make ARCH=win

时,我确实设置了我的 makefile 以运行 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/

相关文章:

linux - Makefile运行导出环境时出现问题

linux - 来自外部源的 Makefile 调用

c - 什么时候用Cygwin或MinGW编译C代码?

python - 在Python中使用sed命令

linux - 是否有 Linux 控制台命令行 MVC 框架?

bash - 如何转义 Makefile 中 cp 命令的括号

windows - Hello World 没有输出 - Qt SDK 2010 - Mingw (gcc 4.6.3) - WindowsXP

c++ - 将 C++ 项目导入到 Eclipse - 重叠工作区

c - 结构的编译定义在 C 中是什么样子的?

c - 适用于 Windows 7 64 位的 c 和 c++ 的 mingw 和代码块?