我想在我的程序中实现libgcrypt的一些功能,但它目前在Windows,OSX和Linux(Arch / Xubuntu)上运行,所以如果我可以为所有三个构建它,我真的可以这样做平台。在OSX和Linux上我没有问题。
我从libgcrypt和libgpg-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 /:
中成功构建这些文件包括/
我将这些文件传递给了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端复制和链接的文件。任何指针(我想错过的文档可能会吗?)非常感谢!非常感谢大家阅读我的文字墙。