2017-05-31 38 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