c++ - 让 G++ 自动使用我的库

标签 c++ ubuntu terminal include shared-libraries

我已经用这些文件构建了一个库:

  • 一堆标题。
  • 一个 .so 文件 (libmylib.so)。

我想编译一个 C++ 程序 (sample.cpp),我在其中包含了头文件,并且在我需要使用库的地方。这就是我所做的,并且有效:

  • 将 header 放在 usr/local/include 中。
  • 将 .so 文件放在 usr/local/lib 中。
  • 以这种方式编译程序:g++ sample.cpp -lmylib。

我的问题是:如果我从最后一行省略 -lmylib,为什么它不起作用? 有没有一种方法可以安装该库,这样我就不需要每次都将它放入 g++ 命令中?

谢谢。

最佳答案

默认使用哪些库取决于编译器/链接器中的一些设置,
但它不是“usr/local/lib 中的每个库”或任何目录,只是一些特定的名称
(甚至只是一个)。调用 g++ -vg++ -dumpspecs 列出它(以及更多内容)

所以,要么用你自己的库列表重建你的编译器,要么每次都手动指定它。

关于c++ - 让 G++ 自动使用我的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29582032/

相关文章:

bash - 将文本从先前的标准输出拉到命令行上

java - 无法加载 JVM

ubuntu - 在 EC2 实例上运行 nginx 时遇到问题

mysql - Docker和MySQL无法连接

ubuntu - 戴尔 XPS 13 9365 2 合 1 挂起挂起 Ubuntu 16.04

shell - 如何关闭ZSH shell中的颜色?通过 unicode 支持将其设为黑白!

linux - 如何查看 screen 生成的日志文件 (screenlog.0)

c++ - 在用户定义的类型上使用 std::ptrdiff_t

c++ - clang++链接失败: error: source file is not valid UTF-8?

c++ - MP3 帧头检测 FFF/FFE 同步问题