为Mingw建立/链接libgcrypt

时间:2013-02-14 01:22:50

标签: c linux mingw libgcrypt

我想在我的程序中实现libgcrypt的一些功能,但它目前在Windows,OSX和Linux(Arch / Xubuntu)上运行,所以如果我可以为所有三个构建它,我真的可以这样做平台。在OSX和Linux上我没有问题。

我从libgcryptlibgpg-error的github页面获得了源代码,我已经在Linux和OSX上成功构建并运行了库,所以我知道我的test code是有效的(我现在在Windows w / MinGW上遇到了麻烦)。

我在Xubuntu上做了以下(和Arch类似,但使用pacman而不是apt-get):

sudo apt-get install mingw32 mingw32-runtime mingw32-binutils

获取交叉编译工具链和

git clone https://github.com/Chronic-Dev/libgcrypt.git
git clone https://github.com/Chronic-Dev/libgpg-error.git
cd libgpg-error
autoreconf -vfi
./autogen.sh --build-w32
make
sudo make install
cd ../libgcrypt
autoreconf -vfi
./autogen.sh --build-w32
make
sudo make install

构建,并在home / myuser / w32root /:

中成功构建这些文件
  • libgcrypt.a
  • libgcrypt.def
  • libgcrypt.dll.a
  • libgcrypt.la
  • 的libgpg-error.dll.a
  • libgpg-error.la
  • 包括/

    • gcrypt.h
    • gcrypt-module.h中
    • GPG-error.h

我将这些文件传递给了Windows,并尝试使用

编译测试代码(在本地命名为main.c)
gcc main.c -o main.exe -lgcrypt

但是我得到了未定义的引用错误,导致我得出的结论是库没有正确链接(最初只使用libgcrypt.a),所以我看了一些东西,发现有些库需要一组文件。 a,.def,et al。工作,所以我把它们全部放在C:\ Mingw \ lib中,看它是否有所作为;它没有。以下内容在查找要链接的库文件时也保持沉默,但未解析未定义的引用:

gcc main.c -o main.exe -lgcrypt -lgpg-error

所以我不确定从哪里开始。自述文件不会进行过多的交叉编译,比如一旦你在Windows端复制和链接的文件。任何指针(我想错过的文档可能会吗?)非常感谢!非常感谢大家阅读我的文字墙。

0 个答案:

没有答案