我已经用这些文件构建了一个库:
- 一堆标题。
- 一个 .so 文件 (libmylib.so)。
我想编译一个 C++ 程序 (sample.cpp),我在其中包含了头文件,并且在我需要使用库的地方。这就是我所做的,并且有效:
- 将 header 放在 usr/local/include 中。
- 将 .so 文件放在 usr/local/lib 中。
- 以这种方式编译程序:g++ sample.cpp -lmylib。
我的问题是:如果我从最后一行省略 -lmylib,为什么它不起作用? 有没有一种方法可以安装该库,这样我就不需要每次都将它放入 g++ 命令中?
谢谢。
最佳答案
默认使用哪些库取决于编译器/链接器中的一些设置,
但它不是“usr/local/lib 中的每个库”或任何目录,只是一些特定的名称
(甚至只是一个)。调用 g++ -v
或 g++ -dumpspecs
列出它(以及更多内容)
所以,要么用你自己的库列表重建你的编译器,要么每次都手动指定它。
关于c++ - 让 G++ 自动使用我的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29582032/