0

Ubuntu 12.04 にlibsmtpをインストールしようとしていますが、コンパイル時にエラーが発生します。これが私が従った手順です (Install.txt ファイルに書かれているものとまったく同じです)。

cd libsmtp
./configure

[上記のコマンドの出力は]

checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking for main in -lglib... no
checking for main in -lglib... (cached) no
checking how to run the C preprocessor... gcc -E

リストは続きますが、残りの依存関係がインストールされます。出力から、「lglib」が見つからないことがわかりますが、実際にはインストールされています。modversion の出力は次のとおりです。

usama@ubuntu:~/Desktop/smtp/libsmtp-0.8.5$ pkg-config --modversion glib-2.0
2.32.3

そして、これにより、「make」の実行でエラーが発生しました。出力は次のとおりです。

usama@ubuntu:~/Desktop/smtp/libsmtp-0.8.5$ make
make[1]: Entering directory `/home/usama/Desktop/smtp/libsmtp-0.8.5/smtp'
gcc -I. -I../include `glib-config --cflags` -g -O2 -DUSE_MIME   -c -o    libsmtp_comm.o libsmtp_comm.c
/bin/sh: 1: glib-config: not found
libsmtp_comm.c:28:20: fatal error: glib.h: No such file or directory
compilation terminated.
make[1]: *** [libsmtp_comm.o] Error 1
make[1]: Leaving directory `/home/usama/Desktop/smtp/libsmtp-0.8.5/smtp'
make: *** [all] Error 1

この問題を解決する方法を教えてください。

更新しました:

glib を扱う構成スクリプトの部分は次のとおりです。

 echo "$as_me:$LINENO: \$? = $ac_status" >&5
 (exit $ac_status); }; }; then
 ac_cv_lib_glib_main=yes
 else
 echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5

 ac_cv_lib_glib_main=no
 fi
 rm -f conftest.err conftest.$ac_objext \
   conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_glib_main" >&5
echo "${ECHO_T}$ac_cv_lib_glib_main" >&6
if test $ac_cv_lib_glib_main = yes; then
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBGLIB 1
_ACEOF

LIBS="-lglib $LIBS"

echo "$as_me:$LINENO: checking for main in -lglib" >&5
echo $ECHO_N "checking for main in -lglib... $ECHO_C" >&6
if test "${ac_cv_lib_glib_main+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
 ac_check_lib_save_LIBS=$LIBS
LIBS="-lglib  $LIBS"
4

2 に答える 2

4

最後に、glib エラーを取り除くことができました。次の手順に従う必要があります。

最初に libgtk2.0 がシステムにインストールされていることを確認します。インストールされていない場合は、次のコマンドでインストールできます。

sudo apt-get install libgtk2.0-dev 

コンパイラに glib-2.0 のパスを伝えます。正確なコマンドは以下に記述されています: (注: libgtk のパスはシステムによって異なる場合があります。パスを確認するには、次のコマンドを使用します:)

pkg-config --cflags glib-2.0

次のような出力が得られるはずです。

-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include 

libsmtp (または目的のアプリケーション) をインストールします。

cd libsmtp
./configure
make CFLAGS='-I/usr/include/glib-2.0' CPPFLAGS='-I/usr/lib/x86_64-linux-gnu/glib-2.0/include'

運が良ければ、目的のアプリケーションをインストールできます。

于 2012-07-13T10:53:35.110 に答える
3
sudo apt-get install libglib2.0-dev
于 2012-10-17T01:59:17.023 に答える