修改 Makefile 中包含目录之间的 "priorities"
Modifying the "priorities" between include directories within a Makefile
为简单起见,我想在我的嵌入式 ElinOS 系统中使用 OpenCV 库,同时在我的 Windows 机器上编程。
为此,我在网站上下载了 Linux 的 OpenCV 源代码,并尝试使用 cygwin 和 cmake 编译它以生成 Makefile。但是,我在 "make" 步骤中出现错误,即 /usr/include/wchar.h:41:25: fatal error : bits/wchar.h : No such file or directory
我理解这个问题,基本上是 cygwin 应该使用 /opt/elinos-6.0/cdk/x86/x86_64/eglibc-2.17/x86_64-unkown-linux-gnu/include
而不是 /usr/include
但我基本上不知道如何改变它。
至此,我将这两行添加到 CMakeLists.txt
set(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
include_directories(BEFORE C:/sysgo/opt/elinos-6.0/cdk/x86/x86_64/eglibc-2.17/x86_64-unkown-linux-gnu/include/)
并将此行添加到构建的 Makefile 中:
INC = -I/cygdrive/c/sysgo/opt/elinos-6.0/cdk/x86/x86_64/eglibc-2.17/x86_64-unknown-linux-gnu/include/
但是没有用,我仍然得到同样的错误。欢迎任何帮助,如果神奇的命令行附带解释,我会很高兴。
提前致谢!
您的一种方法可能是完全清除标准包含路径:
先用-nostdinc
删除标准路径,然后把你自己的目录放进去。
您可能不想松开所有这些,这是一种查看标准包含路径中使用的方法:echo "//" | gcc -xc++ -E -v -
(也适用于 clang)
这里有一篇关于 gcc 的好文章:
http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art026
在这里您可以阅读它也适用于 clang:
为简单起见,我想在我的嵌入式 ElinOS 系统中使用 OpenCV 库,同时在我的 Windows 机器上编程。
为此,我在网站上下载了 Linux 的 OpenCV 源代码,并尝试使用 cygwin 和 cmake 编译它以生成 Makefile。但是,我在 "make" 步骤中出现错误,即 /usr/include/wchar.h:41:25: fatal error : bits/wchar.h : No such file or directory
我理解这个问题,基本上是 cygwin 应该使用 /opt/elinos-6.0/cdk/x86/x86_64/eglibc-2.17/x86_64-unkown-linux-gnu/include
而不是 /usr/include
但我基本上不知道如何改变它。
至此,我将这两行添加到 CMakeLists.txt
set(CMAKE_INCLUDE_DIRECTORIES_BEFORE ON)
include_directories(BEFORE C:/sysgo/opt/elinos-6.0/cdk/x86/x86_64/eglibc-2.17/x86_64-unkown-linux-gnu/include/)
并将此行添加到构建的 Makefile 中:
INC = -I/cygdrive/c/sysgo/opt/elinos-6.0/cdk/x86/x86_64/eglibc-2.17/x86_64-unknown-linux-gnu/include/
但是没有用,我仍然得到同样的错误。欢迎任何帮助,如果神奇的命令行附带解释,我会很高兴。 提前致谢!
您的一种方法可能是完全清除标准包含路径:
先用-nostdinc
删除标准路径,然后把你自己的目录放进去。
您可能不想松开所有这些,这是一种查看标准包含路径中使用的方法:echo "//" | gcc -xc++ -E -v -
(也适用于 clang)
这里有一篇关于 gcc 的好文章:
http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art026
在这里您可以阅读它也适用于 clang: