使用链接库

简介: 使用链接库

首先找一个空文件夹,新建一个 test.c 文件,并写入如下内容:

#include "hv/hv.h"
int main() {
  char exe_filepath[MAX_PATH] = {0};
  char run_dir[MAX_PATH] = {0};
  // 获取hv编译版本
  const char* version = hv_compile_version();
  // 获取可执行文件路径
  get_executable_path(exe_filepath, sizeof(exe_filepath));
  // 获取运行目录
  get_run_dir(run_dir, sizeof(run_dir));
  printf("exe_filepath=%s\n", exe_filepath);
  printf("run_dir=%s\n", run_dir);
  // 写日志
  LOGI("libhv version: %s", version);
  return 0;
}点击复制复制失败已复制


文件下载:test.c

接下来编译运行:

# 编译
$ gcc test.c -o test -I/usr/local/include -L/usr/local/lib -Wl,-R/usr/local/lib -lhv
# 运行
$ ./test
exe_filepath=/home/iric/桌面/test/libhv-test/test
run_dir=/home/iric/桌面/test/libhv-test
# 查看生成日志
$ cat libhv.20220731.log
2022-07-31 21:19:55.360 INFO  libhv version: 1.22.7.31 [test.c:19:main]点击复制复制失败已复制


提示

官方文档使用cc命令编译,这里使用gcc来编译,如果不加-I/usr/local/include -L/usr/local/lib -Wl,-R/usr/local/lib,则可以编译通过,但是运行的时候会报error while loading shared libraries: libhv.so: cannot open shared object file: No such file or directory错误。使用官方的编译命令:cc -std=c99 test.c -o test -lhv编译后仍然会报错,由于初次接触,还不知道为什么。


2022年7月31日补充

可以不加-L/usr/local/lib-I/usr/local/include,但是-Wl,-R/usr/local/lib不可以去掉。最简命令为:$ gcc test.c -o test -Wl,-R/usr/local/lib -lhv

目录
相关文章
|
6月前
|
存储 Cloud Native Linux
CMake学习之静态库动态库
CMake学习之静态库动态库
|
7月前
|
存储 Linux 编译器
什么是链接库 | 动态库与静态库
什么是链接库 | 动态库与静态库
81 0
|
8月前
|
Linux API C语言
编译参数中如何包含头文件和动态链接库
GCC编译参数:如何包含头文件和动态链接库
49 0
|
11月前
|
编译器 C++ Windows
静态库(lib),动态库(dll)
静态库(lib),动态库(dll)
|
编译器 C语言 C++
【转】Lib静态链接库和Dll动态链接库
【转】Lib静态链接库和Dll动态链接库
126 0
|
存储 缓存 Shell
动态库与静态库上 (3)
动态库与静态库上 (3)
173 0
动态库与静态库上 (3)
|
安全 Linux 编译器
动态库和静态库
动态库和静态库
动态库和静态库
|
编译器 C++ 开发者
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
812 0
头文件.h、动态链接库.dll、静态链接库.lib的区别与应用总结
|
Linux 开发工具 C++
Linux编译多个不同目录下的文件以及静态库、动态库的使用
先看两篇博文,作为基础知识。如果对C/C++编译链接过程都了解的话,可以跳过不看。 http://www.firedragonpzy.com.cn/index.php/archives/2556 http://www.
1801 0

热门文章

最新文章