Cygwin、gcc 和 C_INCLUDE_PATH
Posted
技术标签:
【中文标题】Cygwin、gcc 和 C_INCLUDE_PATH【英文标题】:Cygwin, gcc and C_INCLUDE_PATH 【发布时间】:2016-12-03 12:29:52 【问题描述】:首先,我是一个完整的 Cygwin/Unix/gcc 菜鸟。 (我只用过VC++)
我安装了 Cygwin 并尝试编译一些 C 程序。
需要一些头文件(我会说是 /home/MyUsername/brabrabra/include 中的“brabra.h”),所以我做了
export C_INCLUDE_PATH=/home/MyUsername/brabrabra/include
然后尝试编译通过
gcc -o program1 program1.c
但它说
brabra.h: No such file or directory
原来如此
gcc -o program1 program1.c -v
它说
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/include
/usr/include
/usr/lib/gcc/x86_64-pc-cygwin/5.4.0/../../../../lib/../include/w32api
End of search list.
是的,我通过“export”命令设置的包含目录似乎无法被 gcc 识别。 我能做什么?
【问题讨论】:
根据您的问题,echo $C_INCLUDE_PATH
在您完成export ...
之后会告诉您什么?
那么ls $C_INCLUDE_PATH
你能得到什么?
"当前版本的 Cygwin 和 GCC 不支持 $C_INCLUDE_PATH 吗?"不,不是。为此,您需要在真正的 unix/linux 系统中运行 GCC。在 Cygwin 上,按照@alk 所说的做。
【参考方案1】:
我能做什么?
您可以直接告诉编译器在哪里查找特定文件。
这可以通过使用-I
选项来完成。
gcc -I /home/MyUsername/brabrabra/include -o program1 program1.c
请注意,此选项需要在源文件之前,可能需要查找-I
指定的目录,因此命令至少应如下所示:
gcc -o program1 -I /home/MyUsername/brabrabra/include program1.c
顺便说一句,-L
选项的作用相同,但用于链接所需的库文件。
【讨论】:
谢谢。当前版本的 Cygwin 和 GCC 不支持 $C_INCLUDE_PATH 吗?以上是关于Cygwin、gcc 和 C_INCLUDE_PATH的主要内容,如果未能解决你的问题,请参考以下文章
cygwin 中如何安装arm-linux-gcc交叉编译器
gcc和MinGW的异同(在cygwin/gcc做的东西可以无缝的用在linux下,没有任何问题,是在windows下开发linux程序的一个很好的选择)