gpt4 book ai didi

c++ - 将静态库与 gnu g++ 链接,没有这样的文件或目录

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:58:15 24 4
gpt4 key购买 nike

我正在编写一个依赖于 Poco c++ library 的软件.我可以设法在 Ubuntu 和 Windows 上编译库,但只能是静态的。这很好,因为我想静态地使用它。但是,当我尝试编译依赖于这些库的程序时,我得到了类似这样的错误(自由翻译):

Poco/RegularExpression.h: No such file or directory.

但是,当我还使用 -I 开关明确告诉编译器在哪里查找库的头文件时,我得到了以下错误(但可能有 20-30 行类似的行):

Undefined reference to (pthread_mutex...)

我尝试过很多不同的组合,既有直接使用 g++ 的,也有使用 makefile 的。我是否应该包含库头文件的路径,或者我是否以某种方式未能正确编译库?如果我应该包含路径,我怎样才能摆脱“ undefined reference ”错误?

我对 C++ 编程还很陌生,所以请多多包涵。谢谢,罗伯特

最佳答案

这是一个很常见的错误,我也时不时遇到这种错误。

  • 您是否将 .a 添加到您的项目中?
  • 如何包含标题?用 <> 或“”?
    • 如果是后者,请确保文件位于您的包含文件夹中。
    • 首先,请确保您已添加文件路径,或者它们位于 g++ 的全局包含文件夹中
  • 库是否要编译为 .so/.dll?
    • 通常如果库是动态的,静态库只指向它。
  • 您是否包含了 Poco 本身所需的依赖项?就像 -lpthread 一样,我认为你不见了。

关于c++ - 将静态库与 gnu g++ 链接,没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6581521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com