我想從最新的源碼編譯wkhtmltopdf
。我在Ubuntu 12.10 x64服務器版上。Ubuntu上的wkhtmltopdf編譯
對於作者提到的wkhtmltopdf-qt
編譯,新的Git回購是在4.8.2
分支上的gitorious.org/~antialize/qt/antializes-qt.git
。所以,這也是我用過的。
一切都很順利。 (qt和wkhtmltopdf)的編譯成功完成。但我只能以root身份使用wkhtmltopdf(使用sudo)。當我像其他用戶一樣運行它時,出現以下錯誤。
error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory.
我已經完成了所有的編譯作爲root用戶,其中root用戶的主目錄(/ root)內的文件。我猜想wkhtmltopdf程序需要讀取wkqt
目錄,編譯的qt所在的目錄(和libQtWebKit.so.4
文件)。該目錄也位於根用戶的主目錄中,因此阻止其他用戶運行wkhtmltopdf
。
所以,我決定再次從頭開始。這一次,我把所有的源文件(wkhtmltopdf-qt
和wkhtmltopdf
)放在/usr/wkhtmltopdf
。但是在編譯qt的過程中,編譯器嘗試訪問存在qt源的前一個(舊)位置(/root/wkhtmltopdf-qt
)處的qmake
時出現錯誤。下面
錯誤:
ln -s libQtDeclarative.so.4.8.2 libQtDeclarative.so
ln -s libQtDeclarative.so.4.8.2 libQtDeclarative.so.4
ln -s libQtDeclarative.so.4.8.2 libQtDeclarative.so.4.8
rm -f ../../lib/libQtDeclarative.so.4.8.2
rm -f ../../lib/libQtDeclarative.so
rm -f ../../lib/libQtDeclarative.so.4
rm -f ../../lib/libQtDeclarative.so.4.8
mv -f libQtDeclarative.so.4.8.2 libQtDeclarative.so libQtDeclarative.so.4 libQtDeclarative.so.4.8 ../../lib/
make[1]: Leaving directory `/usr/wkhtmltopdf/wkhtmltopdf-qt/src/declarative'
cd src/3rdparty/webkit/Source/ && make -f Makefile.WebKit
make[1]: Entering directory `/usr/wkhtmltopdf/wkhtmltopdf-qt/src/3rdparty/webkit/Source'
/root/wkhtmltopdf-qt/bin/qmake -spec ../../../../mkspecs/linux-g++-64 -o Makefile.WebKit WebKit.pro
make[1]: /root/wkhtmltopdf-qt/bin/qmake: Command not found
make[1]: *** [Makefile.WebKit] Error 127
make[1]: Leaving directory `/usr/wkhtmltopdf/wkhtmltopdf-qt/src/3rdparty/webkit/Source'
make: *** [sub-webkit-make_default-ordered] Error 2
我不明白這是怎麼可能當我開始絕對新鮮的源代碼。
有什麼方法可以完全刪除(卸載)以前安裝的wkhtmltopdf-qt
和wkhtmltopdf
?
我將不勝感激。謝謝。