我有一个共享的图书馆“libwiston.so”。我正在使用这个创建另一个名为“libanimation.so”的共享库,它将被另一个项目使用。现在,第二个库“libanimation.so”不能在测试代码中正确使用。所以我怀疑第二个lib“libanimation.so”的创建是否正确。创建这个库的gcc命令是
g++ -g -shared -Wl,-soname,libwiston.so -o libAnimation.so $(objs) -lc".
有人遇到这个问题了吗?
最佳答案
这看起来像一个奇怪的链接行-您正在创建libAnimation.so
,但它的内部DT_SONAME
名称是libwiston.so
。
我不认为你想这么做。您不想将libAnimation.so
链接到libwiston.so
(-lwiston
)吗?
g++ -g -shared -o libAnimation.so $(objs) -lc -lwiston
我认为在automake/autoconf中封装您的构建并依赖libtool来正确创建共享库会更容易。
关于linux - 使用另一个共享库创建一个共享库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1747652/