编译和链接Quantlib需要一些时间,因为它不是一个小项目。我正在Quantlib之上构建一些额外的功能,我想在一个单独的项目中保留这些附加功能。
有没有办法通过SWIG轻松地将两个C ++项目暴露到一个库中?因为我的项目很小,只有几个类,所以我可以轻松地手动完成SWIG自动化的操作。但是,我真的只想向我的用户部署最少的文件,即由Quantlib-SWIG构建的两个dll。
答案 0 :(得分:1)
查看Resolver Systems'预先构建的QuantLib with C# bindings二进制文件,但我不确定它们是否经常更新QuantLib版本。
至少可以省去你的一个库吗?
答案 1 :(得分:1)
我不特别了解Quantlib,但通常情况下,使用SWIG执行此操作应该非常简单:SWIG的C#模块支持dllimport
选项,该选项允许您指定为P / Invoke引用的DLL方法(有关详细信息,请参阅SWIG手册的C#部分)。
因此,您可以为扩展创建单独的SWIG接口文件,将dllimport
设置为Quantlib使用的名称,并将C ++粘合代码文件编译为Quantlib和您自己的代码的单个DLL。