Linux下如何将Tor作为库集成到C项目并使用tor_api.h
在Linux下将Tor编译为外部库并使用tor_api.h的方法
一、前置依赖安装
以Debian/Ubuntu为例,先安装编译Tor所需的依赖包:
sudo apt update && sudo apt install libevent-dev libssl-dev zlib1g-dev autoconf automake libtool
二、下载并编译Tor为库
- 下载Tor稳定版源码包(无需克隆整个Git仓库),获取最新稳定版的
.tar.gz压缩包后解压,进入源码目录:
tar -xzf tor-*.tar.gz cd tor-*
- 生成配置文件(若使用Git克隆的源码需执行此步,官方tar包通常已自带configure,可跳过):
sh autogen.sh
- 配置编译选项,核心是开启库模式,同时指定独立安装目录(避免污染系统默认路径):
./configure --enable-library --prefix=/usr/local/tor-lib
--enable-library:强制Tor编译为可链接的共享库,并生成tor_api.h头文件--prefix:指定编译后头文件、库文件的安装路径,此处设为/usr/local/tor-lib,可自行修改
- 编译并安装:
make -j$(nproc) # 多线程加速编译 sudo make install
执行完成后,/usr/local/tor-lib/include目录下会出现tor_api.h,/usr/local/tor-lib/lib目录下会有libtor.so等库文件。
三、在自有C项目中引用Tor库
编译项目时,需指定Tor的头文件路径和链接库:
gcc your_tor_app.c -o your_tor_app -I/usr/local/tor-lib/include -L/usr/local/tor-lib/lib -ltor -pthread
-I:指定Tor头文件所在目录-L:指定Tor库文件所在目录-ltor:链接Tor共享库-pthread:Tor依赖线程库,必须添加
四、运行程序的注意事项
运行编译后的程序前,需让系统找到Tor共享库,可选两种方式:
- 临时设置环境变量:
LD_LIBRARY_PATH=/usr/local/tor-lib/lib ./your_tor_app
- 永久添加库路径:
echo "/usr/local/tor-lib/lib" | sudo tee /etc/ld.so.conf.d/tor-lib.conf sudo ldconfig
关键说明
默认执行./configure时,Tor仅编译客户端/服务器可执行文件,不会生成库文件和安装tor_api.h,必须显式添加--enable-library选项才能开启库模式编译。
内容的提问来源于stack exchange,提问作者Gianla
相关产品推荐
相关产品推荐

