天天看点

CTP:rust封装找不到thostmduserapi_se、thosttraderapi_se问题

当你使用CC、rust_bindgen之后,你的封装的依赖库仍然用不起来,或找不到相应的.so文件,你需要注意一下

1、在CC对应项目下的build.rs

注意“=“后面不能出现空格!

use std::env;
use std::path::PathBuf;

fn main() {
    cc::Build::new()
        .file("../ctp_bind/src/bridge/bridge.cpp")
        .cpp(true)
        .warnings(false)
        .flag("-std=c++11")
        .compile("bridge");

    println!("cargo:rustc-link-lib=thostmduserapi_se");// “=”后面不能有空格
    println!("cargo:rustc-link-lib=thosttraderapi_se");// “=”后面不能有空格
}

           

2、注意加”lib“

Ctp中 linux环境中,依赖原库文件thostmduserapi_se.so 、thosttraderapi_se.so,需要把这两个文件拷到/usr/local/lib/下。

这个没有问题。

但是需要注意:

(1)改名,前缀加上”lib“

thostmduserapi_se.so => libthostmduserapi_se.so

thosttraderapi_se.so =>libthosttraderapi_se.so

(2) 运行sudo ldconfig命令

继续阅读