因为要用到正则表达式,但是posix自带的regex在freebsd实在是没法用,所以用了一下pcre。
下载,安装pcre就不说了,就是默认的
./configure
make
make install
完了之后编译要用到pcre的程序test1.c
gcc -I/usr/local/include -L/usr/local/lib -lpcre test1.c -o test1
这样是能够编译过的。但是这样的程序放到一个没有安装pcre库的机器上跑会报错。/libexec/ld-elf.so.1: Shared object "libpcre.so.1" not found, required by "test1"。因为要用到动态链接库libpcre.so。
所以我就想直接使用静态链接库,这样就不会有上面的现象。
于是就编译test1.c
gcc -I/usr/local/include -L/usr/local/lib -static -lpcre test1.c -o test1
但是这样编译老是报错
undefined reference to `pcre_compile'
undefined reference to `pcre_exec'
首先看到/usr/local/lib下面是有libpcre.a的,说明静态链接库的文件还是有的,没办法就继续google。
最后改了一下编译命令
gcc -I/usr/local/include -L/usr/local/lib -static test1.c -lpcre -o test1
编译通过。
然后将编译完的可执行文件,放到了一台没按pcre的机器上,也能运行。
阅读(1306) | 评论(0) | 转发(0) |