⑴ linux GCC编译的时候额外添加的头文件搜索路径为什么没有效果
解决办法:
在运行之前,将openssl/md4.h头文件所在路径追加到C_INCLUDE_PATH环境变量里面 例:
#C_INCLUDE_PATH=/usr/local/ssl/include;export C_INCLUDE_PATH
在这里假设/usr/local/ssl/include/openssl/md4.h文件存在。请根据自身的环境设置路径
问题:运行.configure的时候,出现一下错误:
configure: error: OpenSSL(libcrypto) is required
解决办法:
运行.configure的时候用with-openssl指定libcrypto包的位置
#./configure --with-openssl=/usr/local/ssl
在这里假设/usr/local/ssl/lib/libcrypto.so文件存在。请根据自身的环境设置路径
问题:运行resynctool的时候,出现一下错误:
resynctool: error while loading shared libraries: libcrypto.so.0.9.8: cannot open shared object file: No such file or directory
解决办法: 在运行之前,把相关路径追加到LD_LIBRARY_PATH环境变量里面
LD_LIBRARY_PATH=/usr/local/ssl/lib;export LD_LIBRARY_PATH
补充:Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。
⑵ 怎么在linux环境变量中设置多个gcc头文件搜索路径
C_INCLUDE_PATH=/usr/include/:/path2/xxx/:$C_INCLUDE_PATH
不就好咯
⑶ 关于在linux下用gcc编译头文件
首先,确定你的头文件都用宏隔开了,防止了重复定义。例如,在file.h 中的开头就是
#ifndef __FILE__HEAD___
#define __FILE__HEAD___
//头文件中的内容
#endif //__FILE__HEAD___
之后,
file.h中用到了list.h ,所以file.h中#include "list.h"//假设头文件都在同一目录下
list.h中用到了preapre.h 所以list.h中#include "prepare.h"
prepare.h中用到了node.h 所以prepare.h中#include "node.h"
在某些情况下,由于代码组织等的问题,还是会出现编译问题,这个就是代码组织技巧的问题了,要根据具体代码具体判断了。
另外,准确的说头文件只是在编译的第一步,预处理的时候使用了,真正被“编”的应该是源文件,这个是编译原理方面的问题了。
⑷ arm-linux-gcc怎么编译自己写的头文件
linux gcc编译c文件头文件
linux gcc编译c文件头文件,使用GCC编译器编译C语言
凶猪下山
转载
关注
0点赞·1047人阅读
GCC编译C源代码有四个步骤:预处理—->编译—->汇编—->链接。
可以利用GCC的参数来控制执行的过程,这样就可以更深入的了解编译C程序的过程。
下面将通过对一个程序的编译来演示整个过程。
#include
int main()
{
printf("happy new year!\n");
return 0;
}
1:预处理:编译器将C程序的头文件编译进来,还有宏的替换,可以用gcc的参数-E来参看。
预处理 命令:gcc -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i
2:编译:这个阶段编译器主要做词法分析、语法分析、语义分析等,在检查无错误后后,把代码翻译成汇编语言。可用gcc的参数-S来参看。
编译器(ccl)将文本文件hello.i 翻译成文本文件hello.s, 它包含一个汇编语言程序。汇编语言程序中的每条语句都以一种标准的文本格式描述了一条低级机器语言指令。
编译命令:gcc -S hello.i -o hello.s
作用:将预处理输出文件hello.i汇编成hello.s文件
3:汇编:把编译阶段生成的.s 文件转换为二进制目标代码。可用gcc的参数-c来参看。汇编器(as)将hello.s翻译成机器语言指令,把这些指令打包成可重定位目标程序的格式, 并将结果保存在目标文件hello.o中。hello.o文件是一个二进制文件,它的字节编码是机器语言。
汇编 命令:gcc -c hello.s -o hello.o
作用:作用:将汇编输出文件hello.s编译输出hello.o文件
4:链接:把obj文件链接为可执行的文件:链接器(ld)负责.o文件的并入。结果就是hello文件,它是一个课执行的目标文件,可以加载到存储器后由系统调用。
链接命令:gcc hello.o -o hello
一步操作的话是: (-o必须在hello之前 )
$gcc hello.c -o hello
$./hello或者:(会默认生成a.out文件)
$gcc hello.c
$./a.out
⑸ linux下gcc编译的时候提示说头文件找不到
如果是自己编写的头文件, 而且不是放在系统的头文件存放目录下, 需要用引号括起头文件名。
例如: #include “myfile.h"
你是这样书写的吗?
⑹ 如何让linux-gcc找到自定义的头文件
要么就使用绝对路径, 要么就使用工程. 如:#include "c:\foo\foo.h" 使用工程的话就是新建一个工程, 工程建好之后会有source files, header files, other files三个目录, 你用右键把头文件添加到header files里边即可 工程的话实际上也是使用了绝对路径, 只是工程文件帮你做了文件的搜寻工作. 如果是在linux下使用GCC编译器的话,把头文件放在当前目录也可以找到的