如何使用libqrencode编译项目?

时间:2015-02-10 14:44:51

标签: c++ c qr-code

我正在尝试编译此code,但它总是给我"未定义的引用QRcode_encodeString和QRcode_free"。我完成了./configure,make和make install,没有显示错误。我不知道我需要在其他标记中使用哪些标记来编译它。我目前正在使用slackware 3.10 i686。我只是尝试使用gcc -Wall main.c进行编译。我还在尝试理解linux库和共享对象。可能是什么问题的任何线索?我的源代码与qrencode.h文件位于同一目录中。我试过#include和" qrencode.h"。

1 个答案:

答案 0 :(得分:3)

您忘记与图书馆建立关联。

换句话说,编译器知道如何处理代码(因为你要包含标题等),但是链接器却没有(因为它不“知道”在哪里找到它的实现 - 你需要告诉它!)。

-lqrencode添加到编译器标志中。如果默认情况下库未在某个目录中搜索,则还需要添加-L/path/to/libdir

这可能会有所帮助(它提供了一些编译和链接示例):https://www3.ntu.edu.sg/home/ehchua/programming/cpp/gcc_make.html

另一个节点:链接器已经参与构建程序:它将单独的目标文件(假设您有多个* .c文件)链接到一个节点中。它还与至少 libc相关联;但是,该库是特殊的,因为GCC隐式地链接它(也就是说,你不必说-lc),因为它是C标准库。