相关疑难解决方法(0)

如何在Linux中为GCC添加默认包含路径?

我希望gcc $HOME/include除了通常的include目录之外还包含文件,但似乎没有类似的东西$LD_LIBRARY_PATH.

我知道我可以在编译时(或在makefile中)在命令行添加include目录,但我真的很喜欢这里的通用方法,就像在库中一样.

linux gcc environment-variables include

277
推荐指数
4
解决办法
46万
查看次数

g ++包括所有/ usr/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其中包含的所有头文件的所有目录的递归,为什么这不是默认操作?

c++ g++

11
推荐指数
1
解决办法
2万
查看次数

如何在gcc中编译一个包含头文件的C程序?

我想在gcc中编译一个C程序,它有我的2个头文件.

我正在使用命令:

gcc UDP_Receive.c -o UDP_Receive -lm

编译它但我得到一个错误,指出"UDP_Data.h:没有这样的文件或目录"

如何告诉编译器包含这些头文件?

头文件:

#include"UDP_Data.h"

#include"Crypt.h"

谢谢,Ritesh

c gcc compilation header

8
推荐指数
2
解决办法
5万
查看次数

gcc无法找到包含的标题

我正在使用一个标题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的:〜/开发/测试$

我能做些什么来解决这个问题?

c gcc header

3
推荐指数
1
解决办法
7795
查看次数

关于C编程中的.c文件和.h文件?

有一个函数ffoo.c,我把f Prototypes成一个头文件.

然后,有3个问题:

  1. 没有头文件必须命名foo.h
  2. foo.cfoo.h必须在同一个目录
  3. 如果两个问题的答案都是否定的,也就是说,头文件可以命名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)

然后,当我fcmain.c中调用函数时,cmain.c可以 通过指令找到fh#include,但cmain.c如何通过fh找到foo.c,因为cmain.c只包含fh 而不包含foo.c?或编译器或链接器如何通过fh找到foo.c

c

3
推荐指数
1
解决办法
994
查看次数

使用#include <>时如何修改.h文件的路径?

当我们在linux平台中使用#include <stdio.h>时,编译器将在/ usr/include中搜索stdio.h.如何改变使用#include <>的路径?谢谢.

我之所以问这个问题:当我使用C标准函数isdigit()时,如果没有添加"#include <ctype.h>",程序会生成警告但没有错误.但是如果添加"#include <ctype.h>",链接时会产生错误.(我的编译器不是标准的gcc.)

我想知道为什么?

c gcc

1
推荐指数
1
解决办法
195
查看次数

标签 统计

c ×4

gcc ×4

header ×2

c++ ×1

compilation ×1

environment-variables ×1

g++ ×1

include ×1

linux ×1