`
yy8354
  • 浏览: 80666 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux c 学习笔记

阅读更多
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编程之前,我们先理解一下C语言和Linux操作系统的基本概念。C语言是一种强大的、高效的编程语言,被广泛用于系统编程、嵌入式开发以及各种软件开发中。而Linux则是一个开源的、...

    LinuxC学习笔记

    Linux下执行C程序涉及的基本...综合以上内容,Linux C学习笔记覆盖了从基础语法到高级特性,从程序编译、调试到文件操作和Makefile编写的一系列Linux C开发知识点,适合对Linux C语言开发感兴趣的读者深入学习和实践。

    Linux C 学习笔记

    Linux C 学习笔记主要涵盖了C语言在Linux环境下的编程要点,包括指针、代码分支、类型转换、指针与数组、回调函数以及函数指针类型转换等方面的知识。以下是这些知识点的详细说明: 1. **指针的长度**:在32位系统...

    linux下C语言开发笔记整理

    Linux下C语言开发笔记整理涵盖了从基础知识到网络通信的多个方面,主要围绕在Unix/Linux系统环境下使用C语言进行软件开发的各项技术与理论。以下是从文件提供的信息中提炼的知识点。 ### Unix/Linux系统基本命令和...

    李慧芹LinuxC学习笔记

    李慧芹LinuxC学习笔记

    linux嵌入式学习笔记更新中

    Linux 嵌入式学习笔记主要涵盖了Linux操作系统的基础知识以及C语言编程的相关内容。下面将对这些知识点进行详细的解析。 1. Linux基础操作: - 登录:在Linux系统中,用户通过`用户名:密码`的方式登录系统。 - ...

    linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】.zip

    linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】linux嵌入式C语言学习教程【李慧芹老师】的部分代码【看视频自己写的】...

    linux课堂学习笔记

    Linux课堂学习笔记主要涵盖了Linux操作系统、ARM架构以及设备驱动程序等相关知识。这是一份非常有价值的教育资源,适合对嵌入式系统、Linux内核以及硬件驱动感兴趣的学员深入学习。 首先,让我们来了解一下Linux...

    linux学习笔记.pdf

    Linux学习笔记 本文档主要记录了 Linux 操作系统的学习笔记,涵盖了 Basic 的编程、VI 编辑器的使用、GCC 编译器的应用、GDB 调试工具的使用等方面的知识点。 一、编程基础 * 了解 C 语言的基本语法,例如变量...

    Linux-韩顺平学习笔记 - PDF-PPT

    Linux课程学习笔记 -韩顺平 包含c/c++/python/java 专项 面试题 PDF PPT 笔记 面试题 (百度网盘链接 永久有效) 自学,做笔记,复习可用

    linux学习笔记,linux命令整理

    在Linux操作系统的学习中,掌握命令行的使用是至关重要的。...总的来说,Linux学习笔记是一个全面了解和掌握Linux系统操作的基础教程,涵盖了从基本命令到高级管理的诸多方面,对提升Linux技能有很大帮助。

    linux驱动学习笔记

    Linux驱动学习笔记主要涵盖的是与Linux操作系统内核交互的程序设计,这在系统开发和设备管理中至关重要。Linux驱动程序是连接硬件设备和操作系统之间的桥梁,使得操作系统能够控制和利用硬件资源。以下是对这些文件...

    Linux学习笔记.pdf

    根据提供的信息,《Linux学习笔记.pdf》是一份关于Linux操作系统的基础学习材料,主要涵盖了Linux的基本概念、文件系统特性、权限管理以及一些常用命令的使用方法。接下来,我们将详细解析这份文档中提到的重要知识...

    Linux学习笔记之超详细基础linux命令

    Linux 基础命令学习笔记 Linux 是一个开源的操作系统,经过多年的发展,已经成为服务器操作系统的主流选择之一。学习 Linux 基础命令是每个开发者和系统管理员必须掌握的基本技能。本文将从字符界面和图形界面两个...

    Linux C语言初学笔记

    本笔记将围绕Linux命令和C语言的入门知识展开。 首先,让我们深入了解一下Linux命令。命令是与Linux操作系统交互的基本方式,它由三部分组成:命令、选项和参数。例如,`ls`命令用于列出目录中的文件。`-a`选项表示...

    linux入门学习笔记

    ### Linux 入门学习笔记 #### 一、Linux 安装与配置 ##### 1. Linux 的安装方式 - **虚拟机安装**:通过虚拟化技术,在现有操作系统上模拟一个完整的计算机环境,安装 Linux。 - **安装虚拟机软件**: - **...

    Linux Kernel学习笔记

    Linux Kernel 学习笔记主要涵盖了操作系统核心的多个关键领域,包括存储器寻址、设备驱动程序开发、字符设备驱动程序、PCI设备、内核初始化优化宏、访问内核参数的接口、内核初始化选项、内核模块编程、网络子系统等...

    Linux学习笔记-超全总结值得一看(带标签目录)- 154页.pdf

    【Linux学习笔记】这篇超全总结涵盖了Linux操作系统的基础知识,特别是关于命令行的使用和快捷键,以及一些桌面环境下的快捷操作。以下是笔记中的主要内容: 1. **LINUX常用操作命令**: - `clear`:清空终端屏幕...

    韩顺平linux学习笔记

    韩顺平 Linux 学习笔记 本学习笔记涵盖了 Linux 的基础知识、Samba 服务的搭建、Web 项目的开发和发布等内容。学习笔记分为多个阶段,从基础的 Linux 平台开发到高级的 Unix 环境编程,并涉及到 Linux 应用系统开发...

    嵌入式Linux C开发学习笔记

    这是我的嵌入式Linux C开发学习笔记。 该笔记包括文件IO、标准IO、串口通讯、网络通讯的相关内容。 使用vim打开,格式为.h 文件遵循MIT Lisense

Global site tag (gtag.js) - Google Analytics