用Python的交易员 wrote:
啊,这个我就不清楚飞鼠的加载规则了,请联系他们那边的技术团队确认下吧,我建议是:
- 放到python可执行文件所在的目录
- 放到home目录
试试看
后来放到home下面就解决了,十分感谢用Python的交易员!
用Python的交易员 wrote:
金仕达黄金接口API目前是32位的(64位的VN Studio无法运行),所以请自行安装Python 3.7 32位的环境后,手动安装vn.py使用
哦 原来是这样。多谢!
用Python的交易员 wrote:
请试试把这个so放到系统的/lib目录下(全局二进制库目录),Linux上动态链接库的搜索规则和Windows不同,不会自动搜索当前目录的so文件
谢谢[用Python的交易员]回复。
so文件加载没有问题,主要问题是飞鼠现在的api交易接口(so文件)在传输登陆参数的时候需要rsa.pk文件做加密,而这个rsa.pk文件无论放在so同级目录,还是/lib下都读不到。
我下载了一个1.8的vnpy版本,里面金仕达只有td交易代码,没有md行情代码。修改了引用库文件地址后还是同样错误:
1>------ 已启动全部重新生成: 项目: vnksgoldtd, 配置: Release x64 ------
1>stdafx.cpp
1>dllmain.cpp
1>vnksgoldtd.cpp
1> 正在创建库 C:\work\vnpy1.8\api\ksgold\vnksgoldtd\x64\Release\vnksgoldtd.lib 和对象 C:\work\vnpy1.8\api\ksgold\vnksgoldtd\x64\Release\vnksgoldtd.exp
1>vnksgoldtd.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: static class CGoldTradeApi * __cdecl CGoldTradeApi::CreateGoldTradeApi(void)" (__imp_?CreateGoldTradeApi@CGoldTradeApi@@SAPEAV1@XZ)
1>C:\work\vnpy1.8\api\ksgold\vnksgoldtd\x64\Release\vnksgoldtd.pyd : fatal error LNK1120: 1 个无法解析的外部命令
1>已完成生成项目“vnksgoldtd.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
在Ubuntu下面编译好飞鼠API后,放到sgit目录下,可以通过SGIT gateway成功登录行情服务器,但是登录交易服务器时提示rsa.pk not found
,copy飞鼠API文档中的rsa.pk文件至sgit目录下,仍然提示rsa.pk not found
。
目前定位到rsa.pk文件是在飞鼠的libsgittradeapi.so中被调用的,但是将rsa.pk放在libsgittradeapi.so的同级目录下还是提示rsa.pk not found
。
而且每次出现这个提示后整个vnpy应用程序就被卡死了。。。
编译环境:
系统:Windows 10 x64
编译工具: Visual Studio Community 2019
通过VS进行编译时提示以下错误:
1> 正在创建库 C:\work\vnpy-2.1.6\vnpy\api\ksgold\vnksgold\..\vnksgoldmd.lib 和对象 C:\work\vnpy-2.1.6\vnpy\api\ksgold\vnksgold\..\vnksgoldmd.exp
1>vnksgoldmd.obj : error LNK2001: 无法解析的外部符号 "public: static class KSGoldTradeAPI::CKSGoldQuotApi * __cdecl KSGoldTradeAPI::CKSGoldQuotApi::CreateGoldQutoApi(char const *)" (?CreateGoldQutoApi@CKSGoldQuotApi@KSGoldTradeAPI@@SAPEAV12@PEBD@Z)
1>C:\work\vnpy-2.1.6\vnpy\api\ksgold\vnksgold\..\vnksgoldmd.pyd : fatal error LNK1120: 1 个无法解析的外部命令
1>已完成生成项目“vnksgoldmd.vcxproj”的操作 - 失败。
2> 正在创建库 C:\work\vnpy-2.1.6\vnpy\api\ksgold\vnksgold\..\vnksgoldtd.lib 和对象 C:\work\vnpy-2.1.6\vnpy\api\ksgold\vnksgold\..\vnksgoldtd.exp
2>vnksgoldtd.obj : error LNK2001: 无法解析的外部符号 "public: static class KSGoldTradeAPI::CKSGoldTraderApi * __cdecl KSGoldTradeAPI::CKSGoldTraderApi::CreateGoldTraderApi(char const *)" (?CreateGoldTraderApi@CKSGoldTraderApi@KSGoldTradeAPI@@SAPEAV12@PEBD@Z)
2>C:\work\vnpy-2.1.6\vnpy\api\ksgold\vnksgold\..\vnksgoldtd.pyd : fatal error LNK1120: 1 个无法解析的外部命令
2>已完成生成项目“vnksgoldtd.vcxproj”的操作 - 失败。
分别在md和td工程文件中,注释掉下面语句则编译成功:
this->api = CKSGoldQuotApi::CreateGoldQutoApi(pszFlowPath.c_str());
this->api = CKSGoldTraderApi::CreateGoldTraderApi(pszFlowPath.c_str());
网上找了“error LNK2001: 无法解析的外部符号”的解决方案,都十分笼统。还请大神看一下。谢谢!