g++编译动态链接库so调用

做CTP程序的时候,要调用THostFtdcMdApi.h中的 CThostFtdcMdApi 中的静态方法 CreateFtdcMdApi 来创建一个 CThostFtdcMdApi 。

	static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false, const bool bIsMulticast=false);

编辑cpp代码:


#include "ctp_api/ThostFtdcMdApi.h"

int main()
{
        CThostFtdcMdApi *pMdApi = CThostFtdcMdApi::CreateFtdcMdApi("",false,false);

        return 0;
}

在编译的时候

g++ data_recorder.c  -lthostmduserapi_se

出现了错误

/usr/bin/ld: 找不到 -lthostmduserapi_se
collect2: 错误:ld 返回 1

倒腾了一个晚上,找到了结果。首先是在库的命名方面。一开始库的名字是thostmduserapi_se.so,将库的名字改成libthostmduserapi_se.so,然后指定目录-L,编译才能通过:

g++ data_recorder.c  -L. -lthostmduserapi_se

发表评论