我正在使用 libmxml.a 库的某些函数来创建一个动态库,但我收到此警告:
*Warning: Linking the shared library libgstmatroskademux.la against the _
*static library /home/Mr32/gst-template4_final/gst-plugin/src/libmxml.a _
is not portable!
我也收到这个警告:
gcc: /home/Mr32/gst-template4_final/gst-plugin/src/libmxml.a: linker _
input file unused because linking not done
那么这个警告的含义是什么以及我该如何解决它?
Edit :
有一个已经自动生成的 make 文件用于编译 gstreamer 插件。现在要在我添加的插件中使用 libmxml.a 的某些功能$(PATH)/libmxml.a
in the GST_CFLAGS
make 文件中的变量。现在,当我这样做时make
and make install
,该插件工作正常,但我仍然收到此警告。
确保目标文件位于libmxml.a
是用-fPIC
。有必要建立一个共享库。也可以看看http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
这是一个简单的例子
$ cat stat.c
int five() { return 5; }
$ gcc -c stat.c -fPIC
$ ar crus libstat.a stat.o
$ cat dynamic.c
int ten() { return five() + five(); }
$ gcc -c dynamic.c -fPIC
$ gcc -shared -o libdyn.so dynamic.o -L. -lstat
$ ldd libdyn.so # Just to show static linkage to libstat.a
linux-vdso.so.1 => (0x00007fffca1b8000)
libc.so.6 => /lib/libc.so.6 (0x00007fc004649000)
/lib/ld-linux-x86-64.so.2 (0x00007fc004bf7000)
$ cat main.c
int main() { return ten(); }
$ gcc main.c -L. -ldyn
$ LD_LIBRARY_PATH=. ./a.out
$ echo $?
10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)