【发布时间】:2021-11-23 04:35:32
【问题描述】:
我正在尝试解决我在使用库 matplot++ 时遇到的问题。我需要有人教我如何在这里钓鱼而不是给我一条鱼,因为我正在努力用谷歌搜索正确的术语来解决我的问题。
我的文件夹结构如下
-music_vis
|-libs
|-3rd party
|-matplot
|-matplot.h
|-other_folders_for_matplot
|-wavs
|build.sh
|main.cpp
|thread_pool.hpp
build.sh 现在如下:g++ -Wall -lmatplot -I /$(pwd)/libs -g -o music_vis_cpp ./music_vis_main.cpp -lstdc++fs -std=c++17 -pthread
除了本节中的某些内容外,此 shell 脚本中的所有内容都 100% 有效:
-lmatplot -I /$(pwd)/libs
我收到以下错误:
/usr/bin/ld: cannot find -lmatplot
collect2: error: ld returned 1 exit status
g++ 是否虚假地在我的 /usr/bin/ 中查找文件?它不应该在 $(pwd)/libs 中查找吗?
根据我的研究,我也应该有 .so 文件,但 matplot 文件夹下的所有内容都是 .cpp 或 .h 文件。这是否意味着我将库错误地安装到我的 /lib/ 文件夹中?我从 github 克隆并简单地复制到我的 /lib/ 文件夹中。如果没有 -lmatplot 标志,我会收到以下错误:
对于将来如何解决这些问题有任何想法、资源、指导或指导吗?谢谢朋友。
我按照 repo 上的说明进行操作,但是背负了 Compiler not finding jpeg and png libraries ,我在 cmake 中添加了以下标志。这为我创建了目标文件。
-DBUILD_SHARED_LIBS=ON
【问题讨论】:
-
echo $LD_LIBRARY_PATH,也看看 libbmatplot.so 存在哪里?
-
仅供参考,stackoverflow 是针对特定问题的。这是一个非常好的问题,但不适合stackoverflow。希望无论如何你都能找到答案。
-
-I用于在编译阶段包含头文件的目录,您希望-L在链接期间添加查找库的位置。 -
如果您的平台类似于 linux,
-lmatplot指示 gcc 查找libmatplot.so文件。这看起来确实是其中三个的一部分,因此可能需要对其进行编译。如果库有非标准位置,则需要L密钥和-l密钥。你还需要 `-I` 键,包括在内。您寻求的信息来源是有关您正在使用的编译器的文档,您几乎无法即兴演奏华尔兹。 -
有时我们看不到我们应该去的地方... GCC 文档:gcc.gnu.org/onlinedocs 因为您的项目是 C++,所以在 isocpp 网站 isocpp.org/faq 上有相关链接