如何在可执行文件中使用函数时编译.so



当我编译libb.so时,它取决于liba.so。我可以运行

g++ -la.

libb.so使用可执行c的函数时,正确的命令是什么?

g++ -lc 

抛出错误!!

我正在尝试在android下编译weston。gl_render.so使用来自weston的函数。

我想编译'libapi_simple。So ',它使用可执行文件'test'的int module_add(int,int)函数。编译objs,最后的CMD如下所示:

/code/phone/xmake/prebuilts/gcc/linux-x86/arm/arm-linux-gnueabi-4.9-glibc-2.20/bin/arm-linux-gnueabi-g++ -shared -Wl,-soname,libapi_simple. exe/code/phone/out/platforms/phone.amlogic.eng.arm/target/obj/SHARED_LIBRARY/LINKED/libapi_simple. so -fPIC -fPIE -o所以/代码/电话//平台/phone.amlogic.eng.arm/目标/obj/SHARED_LIBRARY/libapi_simple_intermediates/api。o/代码/电话//平台/phone.amlogic.eng.arm/目标/obj SHARED_LIBRARY/libapi_simple_intermediates/私人。o - l/代码/电话//平台/phone.amlogic.eng。手臂/目标/obj/SHARED_LIBRARY 有关- l/代码/电话//平台/phone.amlogic.eng。手臂/目标/obj/STATIC_LIBRARY /code/phone/out/platforms/phone.amlogic.eng手臂/目标/obj/SHARED_LIBRARY/链接- l/代码/电话//平台/phone.amlogic.eng。手臂/目标/rootfs/lib - l/代码/电话//平台/phone.amlogic.eng。手臂/目标/rootfs/usr/lib - wl rpath =/usr/lib - wl -rpath-link =/代码/电话//平台/phone.amlogic.eng.arm/目标/obj/SHARED_LIBRARY/链接:/代码/电话//平台/phone.amlogic.eng.arm/目标/rootfs/lib:/代码/电话//平台/phone.amlogic.eng.arm/目标/rootfs/usr/lib/代码/电话//平台/phone.amlogic.eng.arm/目标/obj/SHARED_LIBRARY libapi_simple_intermediates/api。0: In function get_api_tag()': /code/phone/xmake/example/SHARED_LIBRARY_SIMPLE/api.cpp:9: undefined reference to module_add(int, int)'Collect2: error: ld returned 1 exit statusmake: *** [/code/phone/out/platforms/phone.amlogic.eng.arm/target/obj/SHARED_LIBRARY/LINKED/libapi_simple. com]错误1

谢谢

最新更新