【问题标题】:How add a C library to Windows?如何将 C 库添加到 Windows?
【发布时间】:2021-05-15 00:40:25
【问题描述】:

我是 C 编程语言的新手,我有一个 C 库。基于代码编写器声明HERE,它为32位Windows编译,并有一个DLL文件。

我想详细了解,如何将它添加到我的 PC 中,以便编译器和 IDE 可以轻松找到它。该库将用于以 Fortran 语言编写的主要结构的程序中。

我读了图书馆的乐器。有一些关于安装库的事情。所以我给它添加了一个目录路径。

根据库中的自述文件,我运行以下命令:

g++ `pkg-config --cflags --libs qhullcpp qhullstatic_r` -o my_app my_app.cpp

和:

g++ `pkg-config --cflags --libs qhullcpp qhull_r` -o my_app my_app.cpp

在 Cygwin 中使用“pkg-config”工具。它显示:

在 pkg-config 搜索路径中找不到包 qhullcpp。可能 您应该将包含“qhullcpp.pc”的目录添加到 PKG_CONFIG_PATH 环境变量包“qhullcpp”,需要 'virtual:world',未找到包 'qhullstatic_r',需要 'virtual:world',未找到 g++.exe:错误:my_app.cpp:没有这样的文件或 目录 g++.exe:致命错误:没有输入文件编译终止。

和:

在 pkg-config 搜索路径中找不到包 qhullcpp。可能 您应该将包含“qhullcpp.pc”的目录添加到 PKG_CONFIG_PATH 环境变量包“qhullcpp”,需要 'virtual:world',未找到包 'qhull_r',需要 'virtual:world',未找到 g++.exe:错误:my_app.cpp:没有这样的文件或 目录 g++.exe:致命错误:没有输入文件编译终止。

分别。谁能帮忙解决这个问题并安装库?

我会感谢任何给我一点帮助并原谅我写作不足的cmets。

【问题讨论】:

  • “以一种编译器和IDE可以轻松找到的方式”——应该是反过来——你需要为编译器和IDE提供哪些库的信息他们应该使用这些库以及这些库所在的位置。通常这涉及提供预处理器指令、包含路径、库路径和要链接的库列表。如果您要使用 pkg-config 提供此信息,那么您需要为 pkg-config 执行正确的设置。
  • @user7860670 感谢您的评论。哪种方式为编译器和 IDE 提供信息既简单又合适?如果我想使用“pkg-config”,那么我必须使用哪个设置以及如何设置?
  • 没有简单的方法... 设置项目和管理依赖关系一直是 C/C++ 开发的痛点。如果您出于某种原因想使用 pkg-config 并且开发人员没有记录其开箱即用的可用性,那么您需要自己弄清楚 .pc 文件内容。
  • @user7860670 因此,声明:“在 Windows 上安装 Qhull:zip 文件包含 (...)。Qhull.exe 和 user-eg3.exe 使用可重入库编译,而其他可执行文件使用不可重入库。要安装 Qhull:- 将文件解压缩到一个目录(例如,名为 'qhull')- 单击 QHULL-GO 或打开命令窗口进入 Qhull 的 bin 目录。不起作用,我必须使用“CMAKE”之类的程序来安装它。可以吗:?
  • 安装是一个模糊的术语。 Windows 没有安装源代码组件的内置概念,解压缩当然不是安装。并且根本不需要任何类型的安装。相反,您应该专注于找出预处理器指令、包含路径、库路径和要链接的库列表,以使用该库。

标签: c++ c cygwin qhull


【解决方案1】:

当您放置cygwin 标签时,请注意该软件包已经可用 用于 32 位和 64 位版本的 Cygwin

https://sourceware.org/pipermail/cygwin-announce/2019-December/009360.html

$ cygcheck -cd |grep qhull
libqhull-devel                          2019.1-1
libqhull_7                              2019.1-1
qhull                                   2019.1-1

导入共享库在通常的地方

$ cygcheck -l libqhull-devel |grep dll
/usr/lib/libqhull.dll.a
/usr/lib/libqhull_p.dll.a
/usr/lib/libqhull_r.dll.a

作为包含

$ cygcheck -l libqhull-devel |grep include

/usr/include/libqhull/DEPRECATED.txt
/usr/include/libqhull/geom.h
/usr/include/libqhull/index.htm
...
/usr/include/libqhullcpp/Coordinates.h
/usr/include/libqhullcpp/functionObjects.h
...
/usr/include/libqhull_r/geom_r.h
/usr/include/libqhull_r/index.htm
...
/usr/include/libqhull_r/user_r.h

【讨论】:

  • 我如何导入这个命令?是产生 .lib 和 .dll 文件吗?我使用的是 Windows 7 64 位
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-23
相关资源
最近更新 更多