我希望gcc $HOME/include除了通常的include目录之外还包含文件,但似乎没有类似的东西$LD_LIBRARY_PATH.
我知道我可以在编译时(或在makefile中)在命令行添加include目录,但我真的很喜欢这里的通用方法,就像在库中一样.
我正在尝试编译一个简单的程序
#include <gtkmm.h>
Run Code Online (Sandbox Code Playgroud)
路径gtkmm.h是/usr/include/gtkmm-2.4/gtkmm.h.除非我特别说明,否则g ++不会看到此文件-I /usr/include/gtkmm-2.4.
我的问题是,如何让g ++自动查看/usr/include其中包含的所有头文件的所有目录的递归,为什么这不是默认操作?
我想在gcc中编译一个C程序,它有我的2个头文件.
我正在使用命令:
gcc UDP_Receive.c -o UDP_Receive -lm
编译它但我得到一个错误,指出"UDP_Data.h:没有这样的文件或目录"
如何告诉编译器包含这些头文件?
头文件:
#include"UDP_Data.h"
#include"Crypt.h"
谢谢,Ritesh
我正在使用一个标题colors.h来组织我的源代码.标题是这样的:
#define DEFAULT 0x07
#define BLACK 0
#define GRAY 7
#define BLUE 9
#define GREEN 10
#define CYAN 11
#define RED 12
#define MAGENTA 13
#define YELLOW 14
Run Code Online (Sandbox Code Playgroud)
我将标题放在主要源代码的同一目录中kernel.c,并将其包括在内:
#include <colors.h>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试编译时,我得到了这个:
ubuntu @eeepc:〜/ Development/Test $ gcc -o kernel.o -c kernel.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
kernel.c:1:20:error:colors.h:没有这样的文件或目录
Ubuntu的@ EeePC的:〜/开发/测试$
我能做些什么来解决这个问题?
有一个函数f中foo.c,我把f Prototypes成一个头文件.
然后,有3个问题:
foo.h?foo.c和foo.h必须在同一个目录 ?f.h,foo.c并且f.h可以在不同的目录中.看一个例子:〜/的CFile/foo.c的
#include "~/hfile/f.h"
int f(void){
...
}
Run Code Online (Sandbox Code Playgroud)
〜/ HFILE/FH
int f(void);
Run Code Online (Sandbox Code Playgroud)
〜/主/ cmain.c
#include "~/hfile/f.h"
int main(void){
f();
...
}
Run Code Online (Sandbox Code Playgroud)
然后,当我f在cmain.c中调用函数时,cmain.c可以 通过指令找到fh#include,但cmain.c如何通过fh找到foo.c,因为cmain.c只包含fh 而不包含foo.c?或编译器或链接器如何通过fh找到foo.c?
当我们在linux平台中使用#include <stdio.h>时,编译器将在/ usr/include中搜索stdio.h.如何改变使用#include <>的路径?谢谢.
我之所以问这个问题:当我使用C标准函数isdigit()时,如果没有添加"#include <ctype.h>",程序会生成警告但没有错误.但是如果添加"#include <ctype.h>",链接时会产生错误.(我的编译器不是标准的gcc.)
我想知道为什么?