我想制作一个包含以下内容的项目:
目录结构,不包括临时文件和其他垃圾:
cargo build
我希望c_bindings.rs
这样做:
c_bindings.rs
└── target
└── debug
├── gost_stribog
├── libgost_stribog.rlib
├── libgost_stribog.so
调试目录应为:
Cargo.toml
我的class Bird{
public:
void init();
Bird();//constructor
void foo();//its defined somewhere
};
int _tmain(int argc, _TCHAR* argv[])
{
std::vector <Bird> B(51); // fixed line
for (int i = 0; i < 51; i++)
B[i].foo();
}
应该是什么样的?
答案 0 :(得分:4)
意见回答:不要。
相反,将代码拆分为两个或三个独立的包:
然后,将您的c_bindings.rs
移动到绑定包只为lib.rs
。它可以依赖于核心库。您还可以将main.rs
移动到另一个也取决于核心库的包中。
这三个包可以在同一个源代码库中,但是将使用单独的调用构建。
A Cargo workspace可能证明是有用的;实际上它被列为一个明确的理由(“FFI箱子与FFI绑定的子板箱”)。