Python调用Linux下的动态库(so)
- #include "stdio.h"
- void display(char* msg){
- printf("%s\n",msg);
- }
- int add(int a,int b){
- return a+b;
- }

在编译时使用下列包含位置即可:(注意顺序)
适用于gcc,g++
32位:
64位
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版本的System V)到Linux会出现错误的。下面将全面介绍Linux下守护进程的编程要点并给出详细实例。
Linux下动态库文件的扩展名为”.so”(Shared Object)。按照约定,所有动态库文件名的形式是libname.so(可能在名字中加入版本号)。这样,线程函数库被称作libthread.so。静态库的文件名形式是libname.a。共享archive的文件名形式是libname.sa。共享archive只是一种过渡形式,帮助人们从静态库转变到动态库。
本文仅以简单的例子介绍动态库文件的生成和链接方法。
操作系统:Debian/GNU Linux 2.6.21-2-686;
GCC版本:4.1.3
继续阅读 »
GCC(GNU Compiler Collection) 是 GNU(GNU’s Not Unix) 计划提供的编译器家族,他能够支持 C, C++, Objective-C, Fortran, Java 和 Ada 等等程式设计语言前端,同时能够运行在 x86, x86-64, IA-64, PowerPC, SPARC 和 Alpha 等等几乎现在任何的硬件平台上。鉴于这些特征,连同 GCC 编译代码的高效性,使得 GCC 成为绝大多数免费软件研发编译的最好选择工具。虽然对于程式员们来说,编译器只是个工具,除了研发和维护人员,很少有人关注编译器的发展,但是 GCC 的影响力是如此之大,他的性能提升甚至有望改善任何的免费软件的运行效率,同时他的内部结构的变化也体现出现代编译器发展的新特征,所以 2005年4月20日,GNU 组织发布的 GCC 4.0 引起了广泛的关注。那么这次 GCC 从 3.4.x 直接跃迁到 4.x 的主版本变化到底有什么值得关注的呢?
我们能够从不同的角度看待 GCC 的这次变迁,对于普通程式员来说,关注的主要是GCC 的前端支持情况连同编译性能的变化。
1. GCC 4.0 的前端支持
GCC 的研发者和使用者当中,大多数人都是 C 或 C++ 的用户,所以 GCC 对Fortran 语言支持不足也不令人奇怪。但是,这并不代表 Fortran 是无足轻重的,事实上,研发商业的 Fortran 编译器的公司要远远多于研发 C 和 C++ 编译器的公司。
继续阅读 »