0

好的,总结一下... Windows 上的 STATIC Qxt 可能存在配置问题。它应该链接到 libcrypto.a 和 libssl.a,但它没有链接,这使得任何试图针对 qxtnetwork 静态编译的程序都会失败,并且缺少引用...

使用当前的 Qxt 源,我无法从 Qt Creator 编译我的项目的静态二进制文件,因为缺少对 libcrypto.a 的引用

我可以手动编译该软件,将 -lcrypto 和 -lgdi32 添加到 Qt Creator 生成的命令行末尾:

C:\Dev\Projekty\apps_src\MakeAHole-static>g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,windows -o release\MakeAHole.exe object_script.MakeAHole.Release  -LC:/Qt/static/lib -lmingw32 -lqtmain -lQxtGui -lQxtNetwork -lQxtCore -lQtGui -lQtNetwork -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lcrypto -lssl -lws2_32 -lgdi32

这是整个故事:

有人可以使用静态版本的 libqxt 吗?我已经正确准备了静态 Qt 和 Qxt。唉 - 链接到 qxtnetwork 的 libssh 部分似乎是一个合适的对象失败。编译我的程序失败,缺少对各种 openssl 函数的引用。

这是我的配置行:

configure.bat -qmake-bin C:\Qt\static\bin\qmake.exe -release -prefix C:\Qt\static -static -no-db -I C:\mingw\include -I C:\mingw\include\openssl -L C:\Qt\static\lib -l crypto -l ssl -l ws2_32

(请注意,openssl 手册说:

libcrypto.a 和 libssl.a 是静态库。要使用 DLL,请改为链接 libeay32.a 和 libssl32.a。

),所以我没有使用 ssl32 和 eay32。

注意 Qxt 中的 openssl.pro 有以下行 - 也许它们会导致问题?

!win32:LIBS+= -lcrypto -lssl

和 libssh2.pri 这样的行:

!win32:!symbian{
  INCLUDEPATH +=  $$PWD/linux
  LIBS+=-lcrypto -lz
}

所有需要的库都在适当的位置,即 c:\qt\static\lib\

请注意,我正在使用没有“-static”的动态版本的 Qxt 编译到不同的目录中,并且可以正常工作。

然后我做

mingw32-make
mingw32-make install

并尝试使用 Qt Creator 进行编译:

Running build steps for project MakeAHole...
Configuration unchanged, skipping qmake step.
Starting: "C:\mingw\bin\mingw32-make.exe" 
c:\qt\static\bin\qmake.exe -spec ..\..\..\..\Qt\static\mkspecs\win32-g++ CONFIG+=release -o Makefile ..\MakeAHole\MakeAHole.pro
C:/mingw/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Dev/Projekty/apps_src/MakeAHole-static'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-subsystem,windows -o release\MakeAHole.exe object_script.MakeAHole.Release  -L"c:\Qt\static\lib" -lmingw32 -lqtmain -lcrypto -lssl -LC:/Qt/static/lib -lQxtGui -lQxtNetwork -lQxtCore -lQtGui -lQtNetwork -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32 
mingw32-make[1]: Leaving directory `C:/Dev/Projekty/apps_src/MakeAHole-static'
c:\Qt\static\lib/libQxtNetwork.a(knownhost.o):knownhost.c:(.text+0x5d2): undefined reference to `EVP_sha1'
c:\Qt\static\lib/libQxtNetwork.a(knownhost.o):knownhost.c:(.text+0x5f2): undefined reference to `HMAC_Init'
c:\Qt\static\lib/libQxtNetwork.a(knownhost.o):knownhost.c:(.text+0x61e): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(knownhost.o):knownhost.c:(.text+0x63b): undefined reference to `HMAC_Final'
c:\Qt\static\lib/libQxtNetwork.a(knownhost.o):knownhost.c:(.text+0x649): undefined reference to `HMAC_CTX_cleanup'
c:\Qt\static\lib/libQxtNetwork.a(channel.o):channel.c:(.text+0x1b5e): undefined reference to `RAND_bytes'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x10): undefined reference to `DSA_free'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x75): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x87): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0xa5): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0xc5): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x171): undefined reference to `DSA_free'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x1ca): undefined reference to `DSA_free'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x2ce): undefined reference to `RSA_free'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x2fc): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x30b): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x326): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x343): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x3c1): undefined reference to `RSA_free'
c:\Qt\static\lib/libQxtNetwork.a(hostkey.o):hostkey.c:(.text+0x41a): undefined reference to `RSA_free'
c:\Qt\static\lib/libQxtNetwork.a(transport.o):transport.c:(.text+0x8e8): undefined reference to `RAND_bytes'
c:\Qt\static\lib/libQxtNetwork.a(global.o):global.c:(.text+0x19): undefined reference to `OPENSSL_add_all_algorithms_noconf'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xda): undefined reference to `BN_CTX_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xe5): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xf0): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xfb): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x106): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x13f): undefined reference to `BN_rand'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x166): undefined reference to `BN_mod_exp'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x174): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x190): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1ea): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x219): undefined reference to `BN_bn2bin'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x391): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x3a0): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x3b6): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x3cd): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x3d9): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x3e5): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x3fb): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x412): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x47f): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x4c0): undefined reference to `BN_mod_exp'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x4cb): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x4e7): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x535): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x564): undefined reference to `BN_bn2bin'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x570): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x585): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x5c4): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x60f): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x62a): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x663): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x688): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x6b1): more undefined references to `EVP_DigestUpdate' follow
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x865): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xa3c): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xa48): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xa61): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xa78): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xa9d): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xab3): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xacc): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xaef): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xafb): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xb14): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xb2b): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xb50): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xb66): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xb7f): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xc57): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xc63): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xc7c): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xc93): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xcb8): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xcce): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xce7): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd0a): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd16): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd2f): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd46): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd6b): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd81): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xd9a): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xe9b): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xea7): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xec0): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xed7): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xefc): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xf12): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xf2b): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xfd3): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xfdf): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0xff8): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x100f): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1034): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x104a): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1063): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1163): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1178): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x118a): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x119c): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x11ae): undefined reference to `BN_CTX_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1380): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x138b): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x13a1): undefined reference to `BN_set_word'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x13bf): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x141d): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1435): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1467): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1472): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x15d5): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1601): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1674): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x168c): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x16b4): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x16bf): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x16d5): undefined reference to `BN_set_word'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x16f3): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1757): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x176f): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(kex.o):kex.c:(.text+0x1ef3): undefined reference to `RAND_bytes'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x1f): undefined reference to `BIO_new_file'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x4e): undefined reference to `BIO_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x81): undefined reference to `BN_bn2bin'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x149): undefined reference to `EVP_CIPHER_CTX_get_app_data'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x270): undefined reference to `EVP_aes_256_ecb'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x2a5): undefined reference to `EVP_EncryptInit'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x2be): undefined reference to `EVP_CIPHER_CTX_set_padding'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x2df): undefined reference to `EVP_CIPHER_CTX_set_app_data'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x302): undefined reference to `RSA_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x30b): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x329): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x330): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x34e): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x35d): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x378): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x37f): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x39d): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x3a4): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x3c2): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x3c9): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x3e7): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x3ee): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x40c): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x413): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x431): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x44f): undefined reference to `DSA_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x458): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x476): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x47d): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x49b): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x4a2): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x4c0): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x4c7): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x4e5): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x4f0): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x50b): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x527): undefined reference to `EVP_CIPHER_CTX_init'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x54b): undefined reference to `EVP_CipherInit'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x588): undefined reference to `EVP_Cipher'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x5e2): undefined reference to `PEM_read_bio_RSAPrivateKey'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x611): undefined reference to `PEM_read_bio_DSAPrivateKey'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x639): undefined reference to `RSA_size'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x67b): undefined reference to `RSA_sign'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x6c7): undefined reference to `DSA_do_sign'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x6de): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x6fd): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x714): undefined reference to `DSA_SIG_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x739): undefined reference to `BN_bn2bin'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x751): undefined reference to `BN_bn2bin'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x759): undefined reference to `DSA_SIG_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x778): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x787): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x79d): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x7b4): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x7c9): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x7e0): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x7e5): undefined reference to `BN_new'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x7ff): undefined reference to `BN_bin2bn'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x836): undefined reference to `DSA_do_verify'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x843): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x84e): undefined reference to `BN_clear_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x8aa): undefined reference to `RSA_verify'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x8cb): undefined reference to `EVP_get_digestbyname'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x8da): undefined reference to `EVP_DigestInit'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x8f0): undefined reference to `EVP_DigestUpdate'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x907): undefined reference to `EVP_DigestFinal'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x92c): undefined reference to `BIO_new_file'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x948): undefined reference to `EVP_get_cipherbyname'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x951): undefined reference to `OpenSSL_add_all_ciphers'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x971): undefined reference to `BIO_ctrl'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x990): undefined reference to `PEM_read_bio_PrivateKey'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x99b): undefined reference to `BIO_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0x9e4): undefined reference to `EVP_PKEY_get1_RSA'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xa12): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xa2c): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xa9d): undefined reference to `RSA_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xaee): undefined reference to `EVP_PKEY_get1_DSA'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xb1c): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xb36): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xb4b): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xb60): undefined reference to `BN_num_bits'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xbf0): undefined reference to `DSA_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xc6b): undefined reference to `EVP_PKEY_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xc7d): undefined reference to `RSA_free'
c:\Qt\static\lib/libQxtNetwork.a(openssl.o):openssl.c:(.text+0xc91): undefined reference to `DSA_free'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.text+0x4b): undefined reference to `EVP_CIPHER_CTX_cleanup'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0xbc): undefined reference to `EVP_aes_256_cbc'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0xfc): undefined reference to `EVP_aes_256_cbc'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x12c): undefined reference to `EVP_aes_192_cbc'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x15c): undefined reference to `EVP_aes_128_cbc'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x190): undefined reference to `EVP_bf_cbc'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x1c0): undefined reference to `EVP_rc4'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x1ec): undefined reference to `EVP_rc4'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x21c): undefined reference to `EVP_cast5_cbc'
c:\Qt\static\lib/libQxtNetwork.a(crypt.o):crypt.c:(.rdata+0x24c): undefined reference to `EVP_des_ede3_cbc'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x67): undefined reference to `EVP_ripemd160'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x8a): undefined reference to `HMAC_Init'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0xa4): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0xc0): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0xde): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0xfb): undefined reference to `HMAC_Final'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x103): undefined reference to `HMAC_CTX_cleanup'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x139): undefined reference to `EVP_md5'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x15c): undefined reference to `HMAC_Init'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x176): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x192): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x1b0): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x1cd): undefined reference to `HMAC_Final'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x1d5): undefined reference to `HMAC_CTX_cleanup'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x262): undefined reference to `EVP_sha1'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x285): undefined reference to `HMAC_Init'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x29f): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x2bb): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x2d9): undefined reference to `HMAC_Update'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x2f6): undefined reference to `HMAC_Final'
c:\Qt\static\lib/libQxtNetwork.a(mac.o):mac.c:(.text+0x2fe): undefined reference to `HMAC_CTX_cleanup'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [release\MakeAHole.exe] Error 1
mingw32-make: *** [release] Error 2
The process "C:\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building project MakeAHole (target: Desktop)
When executing build step 'Make'

我的 *.pro 文件中存在以下行:

win32:LIBS += -lcrypto
win32:LIBS += -lssl
win32:LIBS += -lws2_32
4

1 回答 1

0

要使用 openssl,您通常需要两个库:libeay32ssleay32. 找到它们并在你的 win32:LIBS 中写入正确的路径

于 2011-07-21T11:31:12.023 回答