随笔分类 - Linux-Posix
摘要:今天编译webrtc时出现以下错误: ninja -C out/Debug Allninja: Entering directory `out/Debug'[1/6] CXX obj/talk/app/webrtc/java/jni...peerconnection_so.peerconnectio
阅读全文
摘要:开发的软件要支持多个版本的Linux平台,最低需要支持到CentOS 7,以及一些 CentOS 7 的衍生版本。 因为我日常并不使用 CentOS 7,如果在我本机编译的话,会有glibc版本问题,如果全部依赖都使用静态链接glib的方式也很麻烦,关于这个问题可以查看 glibc 版本(versi
阅读全文
摘要:一般先使用ldd 来查看该应用程序缺少什么东西,然后,再根据sudo apt install XXX 去安装相应的动态库. 假如没有对应的库,可以使用:
阅读全文
摘要:四种编译优化类型的解释: `-O ' `-O1 ' Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a large function. With `-O ', the compi
阅读全文
摘要:前言: Socket API 是网络应用程序开发中实际应用的标准 API。尽管该 API 简单,但是 开发新手可能会经历一些常见的问题。本文识别一些最常见的隐患并向您显示如何避免它们。 相关文档:《linux socket 编程》 在 4.2 BSD UNIX® 操作系统中首次引入,Sockets
阅读全文
摘要:一、socket编程 网络功能是Uinux/Linux的一个重要特点,有着悠久的历史,因此有一个非常固定的编程套路。 基于TCP的网络编程: 基于连接, 在交互过程中, 服务器和客户端要保持连接, 不能断开。重发一切出错数据、数据验证, 保证数据的正确性、完整性和顺序性, 缺点是消耗的资源比较大。
阅读全文
摘要:Linux下的C程序常常会因为内存访问等原因造成segment fault(段错误),如果此时core dump 的功能是打开的,在运行我们的可执行程序时就会生成一个名为core的文件,然后我们就可以用gdb对core文件来进行调式,还原发生错误的堆栈情况,这对于我们调试bug非常有帮助。 1. 使
阅读全文
摘要:一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在Linux下用man命令查看的命令的文档 二、Linux下程序的存放目录 Linux程序的存放目录大
阅读全文
摘要:这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。make是用来编译的,它从Makefile中读取指令,然后编译。make i
阅读全文
摘要:使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefile,而且换个编译环境,Makefile还需要修改(Eclipse也是这样)。 这么好的东东当然要拿
阅读全文
摘要:1. gcc/g++在执行编译工作的时候,总共需要4步 (1).预处理,生成.i的文件[预处理器cpp] (2).将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] (3).有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] (4).连接目标代码,生成可执行程序[链接器ld]
阅读全文
摘要:http://www.cnblogs.com/oloroso/p/4856104.html
阅读全文
摘要:简单搭建了在Windows上远程编辑Ubuntu Server 14.04上面源代码的环境,记录一下,给需要的人。 Notepad++安装NppFTP 从插件菜单打开PluginManager,选中NppFTP插件: 点击Install按钮,安装。需要重启Notepad++。 重启后,按下面方式打开
阅读全文
摘要:1. 安装C的帮助手册 如果你使用的Linux发行版, 默认没有安装C语言的库函数MAN手册, 使用下面的方法解决: # sudo apt-get install manpages # sudo apt-get install manpages-de # sudo apt-get install m
阅读全文
摘要:[root@localhost test3]# cat add.h#ifndef _ADD_H_#define _ADD_H_extern int add(int, int);#endif[root@localhost test3]# cat add.c#include "add.h"int add
阅读全文
摘要:学习GNU/LINUX开发的编程人员,上手之后不久就会在编译开源软件的时候碰到configure脚本,过段时间还会知道configure脚本是 autoconf生成的;但是真正想用起来autoconf,却是要弄明白config.h,configure.in,Makfile.am等一大堆的 文件,这可
阅读全文
摘要:介绍 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样。对于开发人员,如果尝试将使用动态库的软件在这些系统之间移植,需要参考枯涩难懂的系统手册,以及修改相应的 Makefile,这一工作是乏味的,并且具有
阅读全文
摘要:使用 GNU autotools 改造一个软件项目 及永刚 jungle@soforge.com 2006 年 3 月 24 日 版本:0.3 及永刚 jungle@soforge.com 2006 年 3 月 24 日 版本:0.3 本文不是一篇规范的教程,而是用一个软件项目作为例子,演示使用 G
阅读全文
摘要:http://files.cnblogs.com/files/findumars/Linux_functions_ch_en.rar
阅读全文
摘要:一、导读 在程序调试过程中如果遇到程序崩溃死机的情况下我们通常多是通过出问题时的栈信息来找到出错的地方,这一点我们在调试一些高级编程语言程序的时候会深有体会,它们通常在出问题时会主动把出问题时的调用栈信息打印出来,比如我们在eclipse中调试java程序时。 当这些换到Linux上的C/C++环境
阅读全文