用到so文件的时候再载入内存,用完关闭so文件,而不是一打开程序就载入程序链接的全部so文件
by supercyper - C/C++ - 2009-09-07 15:08:31 阅读(2146) 回复(8)
前言 用 MS Windows 一段时间的读者,应该都听过动态函式库这个名词。在 Windows 9X/ME 或是 Windows NT/2000 中,常见到的动态函式库为副档名 “DLL” (Dynamic Loading Library)的档案。 而在 linux 中,当然也有动态函式库的机制存在。如此一来,所撰写的程序便无需透过静态连结(Static Link),而可以在编程时透过动态连结(Dynamic Link)产生我们所要的执行档。 使用动态函式库的好处有许多。首先,就是由於执行档主要呼叫的函...
linux动态函式库解析! 前言 用 MS Windows 一段时间的读者,应该都听过动态函式库这个名词。在 Windows 9X/ME 或是 Windows NT/2000 中,常见到的动态函式库为副档名 “DLL” (Dynamic Loading Library)的档案。 而在 linux 中,当然也有动态函式库的机制存在。如此一来,所撰写的程序便无需透过静态连结(Static Link),而可以在编程时透过动态连结(Dynamic Link)产生我们所要的执行档。 使用动态函式库的好处有许多。首先,...
我在动态库里用ACE定义类如下:
class CHandler : public ACE_Task
1. I used RH9.0 linux 2. I have these files: a.cxx b.c a.h 3. a.xx : int my_main( void) {} a.h int my_main(void); b.c #include "a.h" int main( void) { my_main(); return 0; } 4. I compile it as below g++ -c -g a.cxx ld -shared -o libAA.so a.o gcc -I. -c -g b.c ld a.o b.o, it complain that : ld: warning: cannot find entry symbol _start; defaulting...
我看了linux程序员手册中的例子,只有调用部份,没有给出具体的怎么编写so的代码,我按手册中的例子,写了一个调用程序。但没有成功,错误在 dlsym 这个函数上,错误原因是我用的那个符号没有定义。 请熟悉的朋友给个详细的教程吧,非常感谢! 夕阳
我是一个新手,不知道怎么在linux里只把某一个或 某几个声明为导出函数供外部调用。 不让另一部分暴露给外部(是内部使用的工具函数)。