
请问有那位高手能说说,在调用动态联接库的和exec函数调用的区别吗? 在此谢谢了!
by liaoweijun - C/C++ - 2007-07-28 16:22:32 阅读(2902) 回复(15)
我写了一个C++程序,需要调用两个自己写的动态库。 库libdbopr.sl是用于访问数据库的函数库, libdbclass.sl 封装了一些C++类,这些类调用libdbopr.sl中的函数, 程序test1.cpp中使用libdbclass.sl 中的C++类。 库libdbopr.sl的编译命令为: ar -rs libdbopr.sl ./dbopr.o (dbopr.o由.pc文件通过proc和cc编译得到) 库libdbclass.sl的编译命令为: aCC ./dbclass.cpp -o ./dbclass.o -L. -ldbopr ar -rs ./libdbclass....
我在LINUX下使用gcc -shared -o file.so file.c可以成功把文件file.c编译成动态库的形式,但是在unix下总是不成功? 我想请问一下在unix下如何把C程序编译成动态库的形式?
下面testdll.cpp文件具体实现这两个函数: #include "testdll.h" int i = 0; JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass) { return i; } JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint j) { i = j; } 编译连接成库文件,本例是在WINDOWS下做的,生成的是DLL文件,如名称是goodluck.dll。 最后一句话不明白,如何把testdll.cpp生成goodluck.dll文件? 在线等待!
基本情况:我在HP-UX11.11下开发tuxedo后台程序,使用Proc/C,许多公共模块都是以动态库文件(.sl)的形式存在,编译的服务进程时候连接这些库(用-l选项),也有一部分动态库不是在编译时连接的,而是在程序运行过程中根据需要,用dlopen打开然后执行里面的函数,打开之后不关闭(不dlclose)。 我的问题:1。我如何查看一个正在运行的程序,它连接了哪些库,包括dlopen打开的库。 2。我如何查看一个指定的库文件,当前...
动态连接库又称共享库。dll=dynamic linked library sl=shared library,其实都是一回事 在unix 下开发共享库,如果用c来做,方法很简单。打开一个文件,写上一个又一个c函数,就完成一大半工作了。关键在于如何编译。 对于hp-ux来说,编译命令如下: cc +DD64 -b test.c -o libtest.sl -b: Generate shared library as output. Compiler generates position-independent code (PIC). Is not compatible with the +ESrel, -dynamic, ...
我写了一个简单的c函数,想做成动态库,可是,如果用cc/gcc编译,在c++程序中不能调用,提示找不到该函数;但是,用CC/g++编译该动态库,则可以调用。 请大虾帮帮忙。谢谢。
各位大虾好,在开发项目时,变态客户提供了个LIBMAC.SO动态库给我,我在DLOPEN()时报错:说什么找不到那个库!,可我已经设定了库的全局路径了啊,还有库的权限也是开放的啊!!???急急急啊!大家看看吧! int ExecuteDLLFunction(char *dll,char *fname) { int result; void *dlh; int (*fh)(int (*)(int,char *,...),int (*)(char *,char *), int (*)(char *,char *)); dlh=dlopen(dll,RTLD_NOW); if ( dlh==...
unix有动态库吗? unix中的动态库怎样写?如何编译? 我看了好些文章介绍的很少,有的都是用Linux中的gcc编译,再问unix中有gcc编译器吗?
开发环境: SCO unixware 7.1.1 + Oracle 8.1.7 编译器: gcc 2.95 (cc也尝试过) 源文件: test.c :主程序,使用dlopen(),dlsym()来加载使用动态库 proc.pc :Oracle Pro*C代码,读取Oracle中某个表内容 1、proc proc.pc 预编译生成 proc.c 2、gcc -shared -fPIC proc.c -o proc.so -I$ORACLE_HOME/precomp/public -L$ORACLE_HOME/lib/ -lclntsh -lthread -lsocket -lnsl -lgen -ldl -lelf -lm -lgen -ldshm -lmi64 生成...