如何使用 libqrencode 编译项目?

How can i compile a project with libqrencode?

我正在尝试编译这个 code 但它总是给我 "Undefined reference to QRcode_encodeString and QRcode_free"。我已经完成了 ./configure、make 和 make install,没有显示任何错误。我不知道我需要在其他地方使用什么标志来编译它。我目前使用的是 slackware 3.10 i686。我只是想用 gcc -Wall main.c 编译。我仍在努力理解 linux 库和共享对象。关于可能是什么问题的任何线索?我的源代码与 qrencode.h 文件位于同一目录中。我尝试了#include 和 "qrencode.h"。

您忘记 link 与您的图书馆。

换句话说,编译器 知道如何处理代码(因为您包括 header 等等),但是 link呃没有(因为它没有"know"在哪里可以找到它的实现---你需要告诉它!)。

-lqrencode 添加到您的编译器标志。如果库在默认不搜索的目录下,还需要加上-L/path/to/libdir.

这可能会有一些帮助(它给出了一些编译和 linking 的示例):https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

一个额外的节点:linker 已经参与构建您的程序:它link是您单独的object文件(假设你有多个 *.c 文件)合二为一。它还 links 至少 libc;但是,该库的特殊之处在于 GCC link 是隐式的(也就是说,您不必说 -lc),因为它是 C 标准库。