ChinaUnix.net
相关文章推荐:

编译动态库

我源文件为main.c, x.c, y.c, z.c,头文件为x.h,y.h,z.h 如何编译成.so动态编译器用gcc 最好能给出详细参数解释,谢谢

by 闲聊101306 - C/C++ - 2006-01-11 10:44:32 阅读(10626) 回复(14)

相关讨论

如何编译动态连接

by finecloud - C/C++ - 2004-11-14 16:15:09 阅读(783) 回复(1)

g++ -shared -fPIC -o ../../bin/libGXxml.so ./Element.o ./ElementStream.o ./judo.o /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../../i686-pc-linux-gnu/bin/ld: warning: creating a DT_TEXTREL in object. 请问为什么会报警告, 是哪个地方出了问题, 多谢....

by ruchong - C/C++ - 2009-08-23 14:34:02 阅读(1280) 回复(1)

在AIX下,编译动态,由于动态要使用多线程和序列号,所以用了互斥锁。 pthread_mutex_t m_SerialLock; /* Serial锁 */ 但是一初始化,程序就直接core了 pthread_mutex_init( &m_SerialLock, NULL ); 还有创建线程的时候,也coredump if ( pthread_create( &tid, NULL, thread_Send, NULL ) != 0 ) printf("creat send thread error!!!\n"); 想不明白,请教高人。。。。。

by foolishfox - C/C++ - 2008-03-27 18:29:35 阅读(2122) 回复(4)

请教大家一下。 在编译的时候,需要用到一些动态。当把动态放在/usr/lib下工作正常,现在我把放在了一个自己建立的目录里面,然后在/etc/ld.so.conf里指明了的路径,这时候可以编译过去,但在执行的时候,结果是错误的,这是什么原因呀。 另外,如果不想在/etc/ld.so.conf中指示路径,还有什么方法呢。

by hostname - C/C++ - 2008-07-01 10:28:47 阅读(2530) 回复(10)

进程A会顺序加载两个功能类似的动态B和C,动态的导出接口完全一样,为防止同一动态被多次加载,每个动态中都定义了一个全局指针,动态加载前指针为NULL,代码示例: //file A CTaskA* pTask = NULL; extern "C" { DLLEXPORT NewTask(省略参数) { if (NULL == pTask) { pTask = new CTaskA(省略参数); } } } //file B CTaskB* pTask= NULL; extern "C" { ...

by napolunyishi - Solaris - 2007-04-13 21:02:43 阅读(1314) 回复(2)

我要把一段代码编译成.so动态,而这段代码又引用了几个.a的静态,请问我怎样能把这几个静态 都打进.so中,不知道是不是我写的makefile有问题,编译的时候一加上静态就出错.下面是makefile最后生成的gcc命令行: gcc xxxx.o -fPIC -Wstrict-prototypes -Wall -Wunused -O3 -shared -L... -lxxx -o ../../lib/cdbautils.so 只要我加上-lxxx,引入需要的静态,链接时就会出错 但是不引入的话,其它程序引用这个.so时也会...

by fudy - C/C++ - 2004-11-22 19:31:12 阅读(975) 回复(3)

诸位老大,有哪位在solaris下面做过动态(*.so),能否贴个makefile上来。我这里碰到了一个问题,望能得到您的协助 我们当年在linux下面做过一个自己的类,其中使用了posix的一些标准的函数,如sem_init等等。在LInux下面编译成test.so动态,并且能够用应用程序调用该中的函数。 现在我们要将之移植到solaris下面,编译的时候,编译成功,但是使用该的应用程序编译的时候,在link的时候,说在link我们test.so的时候...

by hcode - C/C++ - 2004-10-13 12:08:48 阅读(1721) 回复(5)

我用PROC[ORACLE]写了一些代码编译动态,在AIX上编译没有问题,可以调用,但是移植到HPUX下,编译可以通过,但是不能调用,各位帮忙看一看。 proc iname=KPI_03_06.pc oname=KPI_03_06.c cc +z -g -I. -D_DEBUG_ -DORACLE -DHP -I/home/oracle/app/oracle/product/8.1.7/precomp/public -I/home/oracle/app/oracle/product/8.1.7/rdbms/demo -I/home/oracle/app/oracle/product/8.1.7/rdbms/public -I/home/oracle/app/or...

by 李勇 - C/C++ - 2003-12-10 14:45:01 阅读(1301) 回复(1)

进程A会顺序加载两个功能类似的动态B和C,动态的导出接口完全一样,为防止同一动态被多次加载,每个动态中都定义了一个全局指针,动态加载前指针为NULL,代码示例: //file A CTaskA* pTask = NULL; extern "C" { DLLEXPORT CTaskA* NewTask(省略参数) { if (NULL == pTask) { pTask = new CTaskA(省略参数); } return pTask; } } //file B CTaskB* p...

by napolunyishi - Shell - 2007-04-13 23:59:28 阅读(1196) 回复(4)

出错信息: [code] unable to open dll info: Can't dlopen() a library containing Thread Local Stora ge: /usr/lib/libpthread.1 [/code] 2个程序,test_dll.c 需要编译成可 dlopen 的动态,现在不知道编译命令如何 写,哪位知道的朋友指点一下。 [code] /* test_dll.c */ #include ; int test_lib(); int test_dll(); int test_dll() { printf("hello,world this is from test_dll\n"...

by mengwg - HP-UX - 2004-11-20 23:16:31 阅读(1315) 回复(2)