我使用的是VC++ MFC 64位应用程序的quickfix,它工作得很好.现在我想使用ThreadedSSLSocketAcceptor,我已经完成了以下操作:
不过,我仍然收到以下链接错误:
Severity Code Description Project File Line Suppression State
Error LNK2028 unresolved token (0A0026BF) "public: __cdecl FIX::SSLSocketAcceptor::SSLSocketAcceptor(class FIX::Application &,class FIX::MessageStoreFactory &,class FIX::SessionSettings const &,class FIX::LogFactory &)" (??0SSLSocketAcceptor@FIX@@$$FQEAA@AEAVApplication@1@AEAVMessageStoreFactory@1@AEBVSessionSettings@1@AEAVLogFactory@1@@Z) referenced in function "int __cdecl StartExecutor(void *)" (?StartExecutor@@$$FYAHPEAX@Z) OFI_FIX_Executor D:\FIX\RRM_FIX\FIX_RRM(final)\FIXServer\OFI_FIX_Executor\OFI_FIX_Executor\OFI_FIX_ExecutorDlg.obj 1
Severity Code Description Project File Line Suppression State
Error LNK2028 unresolved token (0A0026C0) "public: __cdecl FIX::ThreadedSSLSocketAcceptor::ThreadedSSLSocketAcceptor(class FIX::Application &,class FIX::MessageStoreFactory &,class FIX::SessionSettings const &,class FIX::LogFactory &)" (??0ThreadedSSLSocketAcceptor@FIX@@$$FQEAA@AEAVApplication@1@AEAVMessageStoreFactory@1@AEBVSessionSettings@1@AEAVLogFactory@1@@Z) referenced in function "int __cdecl StartExecutor(void *)" (?StartExecutor@@$$FYAHPEAX@Z) OFI_FIX_Executor D:\FIX\RRM_FIX\FIX_RRM(final)\FIXServer\OFI_FIX_Executor\OFI_FIX_Executor\OFI_FIX_ExecutorDlg.obj 1
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "public: __cdecl FIX::ThreadedSSLSocketAcceptor::ThreadedSSLSocketAcceptor(class FIX::Application &,class FIX::MessageStoreFactory &,class FIX::SessionSettings const &,class FIX::LogFactory &)" (??0ThreadedSSLSocketAcceptor@FIX@@$$FQEAA@AEAVApplication@1@AEAVMessageStoreFactory@1@AEBVSessionSettings@1@AEAVLogFactory@1@@Z) referenced in function "int __cdecl StartExecutor(void *)" (?StartExecutor@@$$FYAHPEAX@Z) OFI_FIX_Executor D:\FIX\RRM_FIX\FIX_RRM(final)\FIXServer\OFI_FIX_Executor\OFI_FIX_Executor\OFI_FIX_ExecutorDlg.obj 1
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol "public: __cdecl FIX::SSLSocketAcceptor::SSLSocketAcceptor(class FIX::Application &,class FIX::MessageStoreFactory &,class FIX::SessionSettings const &,class FIX::LogFactory &)" (??0SSLSocketAcceptor@FIX@@$$FQEAA@AEAVApplication@1@AEAVMessageStoreFactory@1@AEBVSessionSettings@1@AEAVLogFactory@1@@Z) referenced in function "int __cdecl StartExecutor(void *)" (?StartExecutor@@$$FYAHPEAX@Z) OFI_FIX_Executor D:\FIX\RRM_FIX\FIX_RRM(final)\FIXServer\OFI_FIX_Executor\OFI_FIX_Executor\OFI_FIX_ExecutorDlg.obj 1这需要任何附加的库或dll吗?
发布于 2019-02-14 11:45:39
您需要使用SSL重新构建quickfix:
#define HAVE_SSL 1中的src/config_windows.hcmake -S . -DHAVE_SSL=1 (您可能需要首先将OPENSSL_ROOT_DIR env设置为OpenSSL路径,例如set OPENSSL_ROOT_DIR=C:\openssl-1.1.0f-vs2015\)。msbuild quickfix.sln然后,您应该能够构建一个示例应用程序(只需确保将src\C++\release\quickfix.lib添加到链接器设置中):
#define HAVE_SSL 1
#include <quickfix/SSLSocketAcceptor.h>
int main()
{
FIX::NullApplication app{};
FIX::MemoryStoreFactory factory{};
FIX::SessionSettings settings{};
FIX::SSLSocketAcceptor acceptor{ app, factory, settings };
}https://stackoverflow.com/questions/54688269
复制相似问题