1、编译好的程序运行时找不到共享库文件(.so)文件问题原因
默认搜寻共享库文件为系统根相关目录,或者使用export指定shell相关参数改变搜寻路径(export LD_LIBRARY_PATH=./)
相关文章:http://blog.sina.com.cn/s/blog_690c46500100kxhd.html
2、编译过程中在当前目录下查找不到需要的共享库文件
libsegimg.so库文件lib为默认命名规则,实际编译过程中-l参数后只跟segimg即可
3、gcc编译c程序出现“__gxx_personality_v0”
只知道“__gxx_personality_v0”的错误信息表示试图用gcc编译c++的代码而产生错误。网上给出的解决方案多是在编译时加上“-lstdc++”参数,也就是把gcc当作g++来用。但这显然不是我想要的,加上“-lstdc++”参数编译出的目标文件几乎肥了一倍,没理由一个c程序偏按c++编译。我仔细检查,程序中并没有什么c++的代码;而且c++的代码大概也通不过TC2.0吧。于是乎,就无可救药地再次开始怀疑编译器,唉……最后在博客oliliango.cublog.cn的一篇文章上找到了答案:“__gxx_personality_v0这样的编译错误,是由于源代码的文件后缀名和代码的语法不相符合,比如用C的语法的文件,选择了cpp这样的后缀名(或者<大写C>这样的后缀名)”。一检查,果然,因为源代码使用TC编辑过,所以文件名全转换成了大写,所以就出毛病了。
4、for loop initial declaration used outside C99 mode 错误
C99标准支持下面这种for 循环的变量i的定义及初始化方式:
for (int i=1; i<10; i++)
{
printf("Hello C!");
}
C99标准之外的C标准支持下面这种for 循环的变量i的定义及初始化方式:
int i=1;
for (i=1; i<10; i++)
{
printf("Hello C!");
}
gcc增加 -std=c99 参数进行编译可以支持c99标准
5、gcc编译时头文件中的函数未定义等奇怪错误
主要原因还是代码是.c还是.cpp导致的,经验就是奇怪问题先考虑.c/.cpp改名先试试
6、查看程序错误信息
先设置环境变量ulimit -c unlimited,之后程序出错后将生成core文件,使用gdb test32 core.28785
7、C/C++区别
c不支持函数重载 不支持try catch 不支持bool
8、编译器无法找到libseg.so.2.1 类似的共享库
使用ln -s libseg.so.2.1 libseg.so 生成链接关系
9、struct 返回异常值
声明后即自动初始化 且值为随机,如需保证正确,每次声明后先赋值
10、用strncpy memcpy之类出现异常的字符
关键是字符串末尾必须有'\0',这个得自己加
11、GCC/G++编译共享库及静态库
gcc -fPIC -c message.c
gcc -shared -o libmessage.so message.o
libmessage.so以lib开头是linux下动态库的默认规矩
gcc -c message.c -o message.o
ar cqs libmessage.a message.o
分享到:
相关推荐
Linux C学习笔记,对重点知识进行了总结,值得一看
linux下C语言开发,从基础到网络通信笔记学习资料,如有想了解可以私聊
从网上的来的内容,自己做的整理,里面有很多值得学习的东西
Linux C 指针 结构体 库函数文件操作 系统调用文件操作 函数库设计 makefile编写
linux驱动学习笔记整理,某人整理出来的,希望对各位学习linux驱动的童鞋有所帮助啊
Linux快捷键以及使用,嵌入式学习C语言前期学习笔记
这是我的嵌入式Linux C开发学习笔记。 该笔记包括文件IO、标准IO、串口通讯、网络通讯的相关内容。 使用vim打开,格式为.h 文件遵循MIT Lisense
linux学习笔记
Linux课程学习笔记 -韩顺平 包含c/c++/python/java 专项 面试题 PDF PPT 笔记 面试题 (百度网盘链接 永久有效) 自学,做笔记,复习可用
linux入门学习笔记,包括常用命令,用户管理,文件操作,目录结构,启动流程等,笔记详细,值得借鉴
linux c的笔记资料,和大家一起分享 gcc介绍 gdb工具 基本类型、转义符、printf、scanf、操作符 字符处理函数 运算符优先表 文件结构体struct file 宏定义 Linux常用C函数open和read以及write的使用说明 还有一些...
欢迎大家学习,如有不足,望指正!
嵌入式 linux学习笔记1------linux环境操作及c语言基本概念
是本人在学习Linux嵌入式的一些笔记,主要有C语言的一些代码,还有ULE的一些东西
这是我学习linux时所写的一些笔记,新手可看,比较简单;主要包括一些linux c 编程开发函数大全,Linux C语言程序设计入门,shell编程,文件编程,VI,编译器,配置文件等等;
这个文档是本人学习Linux时记录下的一些杂碎笔记,特别是一些命令,希望对大家的学习有帮助
《深入理解LINUX内存管理》学习笔记c.PDF
c,c++随堂笔记,介绍linux环境下c语言程序开发,包括一些容易发生的错误和日常需要注意的事项
C语言自学笔记,快速入门,C语言组成,数据类型,运算符与表达式,分支结构,循环结构,数组,函数,指针等知识,且包含例题和答案解析。
嵌入式linux工程师修炼笔记内包含: 嵌入式软件工程师完全学习指南 C语言专题 你,想成为IT精英吗?.pdf 等一系列文档。