linux/c/cpp
文章平均质量分 77
helloworld20102010
这个作者很懒,什么都没留下…
展开
-
linux c++动态链接库so编写
Linux下的动态链接库是.so文件,即:Shared Object,下面是一个简单的例子说明如何写.so以及程序如何动态载入.so中的函数和对象。testso.h:#ifndef _TESTSO_H#define _TESTSO_Hextern "C" { int myadd(int a, int b); typedef int myadd_t(int, int);转载 2015-06-04 11:00:18 · 387 阅读 · 0 评论 -
C语言运算符优先级 详细列表
文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。恩,问这个问题的人太多了,懒得继续回答,直接贴上来自己看。。。优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]转载 2015-06-11 10:45:02 · 284 阅读 · 0 评论 -
Linux C语言调用C++动态链接库
如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明,那么你如何用c调用呢,C++创始人在编写C++的时候,C语言正盛行,他不得不让C++兼容C。C++最大的特性就是封装,继承,多态,重载。而这些特性恰恰是C语言所不具备的。至于多态,核心技术是通过虚函数表实现的,其实也就是指针。而对于重载,与C语言相比,其实就是编译方式不同而已: C++编译方式和C编译方式。对于函数调用,转载 2015-06-04 14:15:41 · 542 阅读 · 0 评论 -
Linux C调用C++库
C调用C++函数库,一般不能直接调用,需要将C++库转换成C接口输出,方可以使用C调用,看下面的例子:aa.cxx#include "add.h"int sample::method(){ cout}aa.h#include using namespace std;class sample{ public: int me转载 2015-06-04 15:06:29 · 318 阅读 · 0 评论 -
C和C++之间库的互相调用
昨晚有个朋友问我关于在C中调用C++库的问题,今天午饭后,由于脖子痛的厉害而没有加入到我们组的“每天一战”的行列中去,所以正好将C和C++之间的库调用关系做个总结。1.extern "C"的理解:很多人认为"C"表示的C语言,实际并非如此,"C"表示的是一种链接约定,只是因C和C++语言之间的密切关系而在它们之间更多的应用而已。实际上Fortran和汇编语言也常常使用,因为它们也正好符合C转载 2015-06-04 14:54:11 · 258 阅读 · 0 评论 -
C/C++ -- Lib库文件nm调试之符号表
本文主要介绍了一下在Linux下开发c/c++时候,不可避免的会开发或者生成.o .a .so这种中间库状态的文件(可能是自己写了一个lib让别人调用,或者提供.c/.cpp文件嵌入别人的Makefile工程)。如何查看这些库文件的一些基本信息。有时候大家编译程序时候(确切的说是链接器链接的时候)很多错误例如"undefine reference",之类的常见错误,原因就是因为没有找到.o .a转载 2015-06-03 15:03:08 · 608 阅读 · 0 评论 -
c++ 类 helloworld
a.h#ifndef A_H_#define A_H_#include iostream>class Tdate{public: void Set(int,int,int); int IsLeapYear(); void Print();private: int month; int day; int year;};#endif转载 2015-06-04 11:19:08 · 261 阅读 · 0 评论 -
采用dlopen、dlsym、dlclose加载动态链接库【总结】
1、前言 为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用,非常方便。本文先从使用上进行总结,涉及到基本的操作方法,关于动态链接库的本质及如何加载进来,需要进一步学习,后续继续补充。如何将程序设计为插件形式,挖掘出主题和业务之间的关系,需要进一步去转载 2015-06-03 15:03:24 · 242 阅读 · 0 评论 -
undefined reference to 'dlopen';undefined reference to 'dlclose';undefined reference to 'dlerror'等问题
转载:undefined reference to涉及的链接问题http://blog.csdn.net/lyuan13141234/article/details/5667570/----------------------------------------------------->>>>>在linux下,编译链接的时候,经常会遇到这样一个问题,undefined referen转载 2015-06-03 15:05:22 · 1014 阅读 · 0 评论 -
linux程序分析工具介绍(二)—-ldd,nm
本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具:1. ldd, 先看下面的例子, 用ldd查看cs程序所依赖的动态库:wuzesheng@wuzesheng-ubuntu:~/Public$ ldd cs li转载 2015-06-04 10:18:14 · 479 阅读 · 0 评论 -
select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2015-07-13 12:09:01 · 344 阅读 · 0 评论