带有Crypto++库的QT控制台应用程序
QT console application with Crypto++ library
这让我抓狂。使用加密++版本5.6.2。Mac OSX上的问题5.2.1。所有项目都是在QT Creator内部构建的。我没有使用来自命令行的make
我通过以下方式拆包和构建加密++:
- qmake-项目
- 删除了GNUmake文件
-
在QT中打开并通过添加修改.pr文件
macx { DEFINES += CRYPTOPP_DISABLE_ASM }
目标是cryptopp:
TARGET = cryptopp
设置为release,运行qmake并重新生成all。生成dylib:
- libcryptopp.1.0.0.dylib
- libcryptopp.1.0.dylib(别名(
- libcryptopp.1.dylib(别名(
- libcryptopp.dylib(别名(
创建了一个裸控制台应用程序,并包含了我的加密类。修改.pr文件如下:
macx {
# CONFIG += release cryptopp
LIBS += /Users/adviner/Qt5.2.1/5.2.1/clang_64/lib/libcryptopp.1.0.0.dylib
QMAKE_POST_LINK += install_name_tool -change libcryptopp.1.0.0.dylib $$[QT_INSTALL_LIBS]/libcryptopp.1.0.0.dylib $(TARGET)
}
在调试模式下的控制台测试应用程序中。运行qmake,然后全部重建。我一直得到以下错误:
:-1: error: symbol(s) not found for architecture x86_64
:-1: error: linker command failed with exit code 1 (use -v to see invocation)
我已经检查了这两个项目,它们都包括qmake构建步骤中的x86_64(:
cryptopp lib:
qmake /Users/myname/Projects/QTLibs/Source/crypto/cryptopp562/cryptopp562.pro -r -spec macx-clang CONFIG+=x86_64
测试控制台应用程序:
qmake /Users/myname/Projects/Test/CryptoTest/CryptoTest.pro -r -spec macx-clang CONFIG+=debug CONFIG+=x86_64 CONFIG+=declarative_debug CONFIG+=qml_debug
我在谷歌上搜索了一下,但似乎没有什么能回答我的问题。有什么想法吗?我使用Qt 5.2.1在windows上构建了相同的crypto++库,并在我的应用程序中使用,没有任何问题。
好吧,我终于想通了。当我在Mac上构建crypto++库时,我如上所述添加了:
macx {
DEFINES += CRYPTOPP_DISABLE_ASM
}
在控制台应用程序上,我还必须将其添加到.pro文件中,它现在可以工作了
我发现以下提示也可以修改
/用户/adviner/Qt5.2.1/5.2.1/clang_64/mkspecs/macx-clang/qmake.conf
发件人QMAKE_MACOSX_DEPLOYMENT_TARGET=10.6
收件人QMAKE_MACOSX_DEPLOYMENT_TARGET=10.9
但它对我没有任何帮助。
唯一的解决方案是同时对lib和CRYPTOPP_DISABLE_ASM 进行测试
相关文章:
- C++控制台应用程序阻止退出
- 如何在 Win32 C++控制台应用程序中调用 UWP 类库
- 是否可以从控制台应用程序使用 C++/WinRT 创建窗口?
- 如何创建一个使用开源c项目的c++控制台应用程序
- c ++控制台应用程序,如何在控制台外部打印字符
- 将控制台应用程序直接输出到Visual Studio而不是外部Windows控制台中
- 如何在 Win32 控制台应用程序中注册不可见的窗口类?
- 如何将从控制台应用程序C++回调设置为C++ COM DLL
- 使用代码在 AWS 开发工具包C++控制台应用程序上设置凭证
- 直接输入控制台应用程序
- C++调试控制台应用程序
- C++控制台应用程序调用C++/CLI静态库
- 如何在控制台应用程序中添加滚动功能以显示更大的输入
- 如何在将Visual Studio C++控制台应用程序连接到Microsoft SQL Server时修复"
- 如何读取windows服务启动的控制台应用程序的输出
- VS2017 中缺少 Win32 控制台应用程序.如何创建C++空项目?
- 将 Visual C++ 6 控制台应用程序作为 Windows 服务运行
- 如何将控制台应用程序放入系统托盘通知C++?
- 如何向控制台应用程序添加图标
- 如何在 Linux/Apache 虚拟主机上运行 win32 控制台应用程序?