2017-05-31 19 views
0

我下载并安装了APR和APR-util C库,但我无法在项目中使用它们我一直在收到以下错误(我在Linux Mint上):未定义的引用到已安装的APR C库

undefined reference to `apr_pool_initialize' 
undefined reference to `apr_pool_create_ex' 
etc... 

我的库最初安装到/ usr/local/APR。起初我以为,这个文件只是不在我的CC包括路径我复制/ APR /目录到/ usr /本地/ include和/ usr /包括的这是在包括路径,但我得到了完全相同的错误。我尝试添加的lib文件夹中/ APR /成/etc/ld.so.conf.d/,然后运行ldconfig命令所推荐的网站我从做项目,但没有任何帮助。我以为我可能安装不当,所以我redid它,但也没有帮助。我很茫然。如果有人能帮我解决这个问题,我会非常感激。作为参考,这是安装脚本我用:

set -e 
cd /tmp 

curl -L -O http://archive.apache.org/dist/apr/apr-1.4.6.tar.gz 

tar -xzvf apr-1.4.6.tar.gz 
cd apr-1.4.6 

./configure 
make 
sudo make install 

cd /tmp 
rm -rf apr-1.4.6 apr-1.4.6.tar.gz 

curl -L -O http://archive.apache.org/dist/apr/apr-util-1.4.1.tar.gz 

tar -xzvf apr-util-1.4.1.tar.gz 
cd apr-util-1.4.1 

./configure --with-apr=/usr/local/apr 

make 
sudo make install 

cd /tmp 
rm -rf apr-util-1.4.1* apr-1.4.6* 

这是我使用的Makefile,所有的分离是标签:

PREFIX?=/usr/local 
CFLAGS=-g -Wall -I${PREFIX}/apr/include/apr-1 - 
I${PREFIX}/apr/include/apr-util-1 -D_LARGEFILE64_SOURCE=1 
LDFLAGS=-L${PREFIX}/apr/lib -lapr-1 -pthread -laprutil-1 

all: devpkg 

devpkg: bstrlib.o db.o shell.o commands.o 

install: all 
    install -d $(DESTDIR)/$(PREFIX)/bin/ 
    install devpkg $(DESTDIR)/$(PREFIX)/bin/ 

clean: 
    rm -f *.o 
    rm -f devpkg 
    rm -rf *.dSYM 
+0

我怀疑与'LDFLAGS'一个问题,该连接器找不到的功能。您确认'APR的-1'和'libaprutil-1'库的名字和他们的存在? –

+0

你尝试过用gcc手动编译代码,以确保你正确设置的标志吗? – bruceg

+0

我证实APR的-1和libaprutil-1的存在和名字,但如果我尝试编译我的文件单独我得到类似的错误: 致命错误:apr_general.h:没有这样的文件或目录 编译终止。 – aprdrivesmecrazy

回答

0

Linux Mint的:除非它是一个老版本,其随后所有的薄荷已经libapr1libaprutil1版本1.5.0或1.5.2或更高版本的默认安装的。

将得到完整的四月,APR-util的...请不要:

sudo apt update && sudo apt install libapr1-dev libaprutil1-dev 
+0

好吧,我这样做,但我仍然得到相同的错误。这样做后我需要更改我的Makefile吗? – aprdrivesmecrazy