我是linux新手编译开源共享库。
我下载后,请说谷歌的gTest,我解压缩了文件夹。cd gtest.x.x.x
然后
configure
然后我做了,
make all
一堆编译,然后链接是预期的,我是对的吗?
然后在make all
结束后,我检查了lib
文件夹,找到了
libgtest.la
和libgtest_main.la
我应该期待.so
个文件,而不是.la
编辑,
当我做安装时,我得到以下输出:
'make install' is dangerous and not supported.
答案 0 :(得分:1)
*。la对象也是库,这就是为什么你可以在lib文件夹中找到它们的原因。但他们没有分享。 * .so(所以代表共享对象)。
当你运行规则all(make all )或者只是make。您正在订购 make 命令,该命令运行所有写入 Makefile 文件的规则。
在这个文件中(还有其他的,比如CMakeList等)是开发人员编写的(除此之外的东西)应该如何编译和链接程序/库。所以,如果Makefile默认将gTest库编译为 static (我认为就是这种情况),你就找不到任何* .so。
尝试在构建库时添加--shared标志。另外,您应该阅读有关gTest的一些信息,并了解作者是否因为特定原因而这样做。
答案 1 :(得分:1)
库包含.sc文件,因此在lib文件夹中的隐藏文件夹中。
使所有人走完以下路径
libraryProject/lib/.lib
lib文件夹中有一个隐藏的lib文件夹。
gtest/lib/.lin/libName.so