2012-04-28 2 views
4

私はKubuntu 12.04に更新しました。最新のカスタムビルドemacsを除いて、すべてうまく動作します。それは今言う:Emacsをビルドする24.1.50

emacs: symbol lookup error: emacs: undefined symbol: gtk_window_set_has_resize_grip 

私はemacsを再構築することにしました。そのために私はgit pull最新のスナップショットをした、と私は通常どおりにすべてを行っているが、今私は、コンパイル時にエラーが発生します:

In file included from /home/boris/its/blds/emacs/lib-src/emacsclient.c:76:0: 
../lib/getopt.h:196:8: error: redefinition of ‘struct option’ 
/usr/include/getopt.h:106:8: note: originally defined here 
../lib/getopt.h:245:12: error: conflicting types for ‘getopt_long’ 
/usr/include/getopt.h:175:12: note: previous declaration of ‘getopt_long’ was here 
../lib/getopt.h:249:12: error: conflicting types for ‘getopt_long_only’ 
/usr/include/getopt.h:179:12: note: previous declaration of ‘getopt_long_only’ was here 
make[1]: *** [emacsclient] Error 1 
make[1]: Leaving directory `/home/boris/its/blds/emacs/lib-src' 
make: *** [lib-src] Error 2 

Google検索は、これらのエラーのほとんど何も示しません。

編集

以下は(JSONに感謝)、それを解決:emacs-snapshot

git pull 
./autogen.sh 
./configure --prefix=/home/boris/its/soft/Emacs_24.1.50 
make bootstrap 
make install 

答えて

3

最も簡単な方法は、PPAを使用することです。

sudo add-apt-repository ppa:cassou/emacs 
sudo apt-get update 
sudo apt-get install emacs-snapshot 
2

私はUbuntuの12.04へのアップデートこれらの問題を抱えていたし、初めてのチェックアウトのために戻っINSTALL.BZRからの命令に行くことによってそれを過ぎました - configureファイルが原因でlibcの変化に再生成する必要がありそうですUbuntuの新しいバージョン。

1

これは私がgitのプル後のEmacsを構築するために何をすべきかです(私のscriptは毎晩それを行うには)

make distclean && autoreconf -i -I m4 && ./configure && make && sudo make install 
0

私はOPと同じ問題を抱えていた、と私はちょうどシステムからのemacsを除去し、最初からコンパイルされます。

といいえ、私はppaを追加する必要はありませんでした。すべての投票権を得るような回答が表示されるたびに、スタック・エクスチェンジに関する一般的な疑問が湧きます。同じ問題。

いいえ、私はそれを一度言って、もう一度言います。fsfから最新のemacsをダウンロードしてください。

私は、getopt.hがlibc6-devの一部であると付け加えることができます(json氏によると)。 libc6-devはlibjpeg libncurses libpng libtiff xlibsなどの必要なグループの一部です。一度削除して再インストールしてください。問題は設定時にemacs24の接頭辞の中で今度は指定する必要のある設定オプションのパスにあります。自動生成もブートストラップも不要ですが、作成してインストールするだけです。

+0

ゼロからの遵守とppa oneの両方の答えは価値があると思います。あなた自身をすべてコンパイルし、各アップデートでそれを何度も繰り返しコンパイルしたいのであれば(古いものを使用する) - それはあなたの意見です。 – Adobe

+0

はい。と私は間違っている最も明確な答えは、最も単純な解決策ではなく、ソリューションではないという意味で正しいかどうかを明確にしていない。あなたが間違っているのは、そのエラーが競合によって引き起こされていることが分からないためです。 emacsを削除して最初からコンパイルすることによって解決される矛盾。 – doed

0
make maintainer-clean 
./autogen.sh 
./configure 
make 

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10108#8

私はあなたとしてではなく24.5タグに同じ問題がありました。問題は、autogen.shを再実行して新しいconfigureスクリプトを作成しなかったことです。私は、追跡されていないファイルがgitのステータスによってリストされると仮定しましたが、.gitignoreではautogen.shからのすべての構成出力は無視されます。

関連する問題