2013-12-20 40 views
3

我试图做一个简单的电子邮件客户端,我必须解析我然后打印在QT界面的MIME消息。我读到gmime会把这个工作做得很好,但是g ++似乎并没有意识到这个库的存在。 到目前为止,我已经尝试如何在linux(ubuntu)中正确安装gmime库?

sudo apt-get install libgmime-2.6-dev 
sudo apt-get install libgmime2.6-cil 
sudo apt-get install libglib2.0-dev 
sudo apt-get install libgmime2.6-cil-dev 

第一件事,我真的做了。它似乎很好,但然后

#include <gmime/gmime.h> 

不起作用(gmime.h未找到)。我检查了/ usr/include,头文件都在那里,但是在我的文件系统中没有其他的库标志。

后来我跟着这些指示http://www.linuxfromscratch.org/blfs/view/svn/general/gmime.html,但是当我跑

./configure --prefix=/usr --disable-static && 
make 

test-pkcs7.c:36:23: fatal error: gpg-error.h: No such file or directory 
compilation terminated. 

然后我尝试了图书馆的地方包括

#include "/home/user/Downloads/gmime-2.6.19/gmime/gmime.h" 

但我得到这个错误。

/home/user/Downloads/gmime-2.6.19/gmime/gmime.h:25: error: glib.h: No such file or directory 

有没有人遇到过这个?

回答

2

当您尝试编译程序,试试这个:

g++ -o myprogram myprogram.cpp `pkg-config --cflags --libs gmime-2.6` 

的问题是,你需要告诉编译器,其中包括路径使用(--cflags),什么库路径使用( - 库)。

当编译各个源,你可以这样做:

g++ -o file.o -c file.cpp `pkg-config --cflags gmime-2.6` 

然后用pkg-config --libs gmime-2.6在最后一步。

+0

谢谢,这似乎工作,我会保存想法为以后使用。虽然,在此期间,我决定改用vmime。它比gmime更强大,它有一个非常全面的文档。 –

+0

以何种方式更健壮?我上面的答案在GMime文档中:https://developer.gnome.org/gmime/stable/gmime-compiling.html。 FWIW,我是GMime的作者。 – jstedfast

1

解决了这个问题,以便安装所有这些都是在“libgmime”可能和

sudo apt-get install libgmime-2.6-dev 
sudo apt-get install libgmime2.6-cil 
sudo apt-get install libglib2.0-dev 
sudo apt-get install libgmime2.6-cil-dev 

-

root:~$ ./configure 
... 
root:~$ gcc-shared res/res_http_post.c -o res/res_http_post.so -fPIC `pkg-config -cflags –libs gmime-2.6` 
root:~$ cp res/res_http_post.so /usr/lib/asterisk/modules/