如何在c汇编中使用共享对象文件



我正在尝试使用MacOS Sierra上的gcc Apple LLVM version 8.0.0 (clang-800.0.42.1)使用此C库。我已经完成了以下步骤:

  1. make libquirc.so

  2. libquirc.so复制到我的项目目录

  3. gcc -o quirc_test quirc_test.c -L. -l libquirc.so.1.0

它产生错误:

quirc_test.c:1:10: fatal error: 'quirc.h' file not found
#include <quirc.h>
         ^
1 error generated.

QUIRC_TEST.C

#include <quirc.h>

这是我第一次尝试在C和其他有关使用link标志编译的问题上做任何事情似乎没有帮助。

C有些原始。共享对象库不包含其实施的API的声明 - 至少没有足够的详细信息或编译器可以理解的形式。

您需要在某个地方找到标头文件quirc.h。您可以像库一样将其复制到当前目录中,但是您需要对Include语句进行少量调整。

#include "quirc.h"

如果随附的文件被双引号而不是角括号包围,则它将首先在源代码目录而不是系统标题目录中查看。

一种替代方法是在某个地方安装库。/usr/local。您的图书馆将进入/usr/local/lib nd您的标题/usr/local/include。如果这样做,请使用编译器命令行上的-I指令告诉编译器在哪里查找标题,例如。

cc -I/usr/local/include -L/usr/local/lib -lquirc  quirc_test.c

最新更新