我遇到一个项目的一些问题。我需要使用两个库,但需要使用/clr
开关编译,因为另一个无法使用此开关进行编译。
是否有办法在一个项目中同时使用这两个库?目前它已使用/clr
进行编译,并且我将noclr
库链接错误。
如果没有解决方案,我仍然可以在批处理模式下启动noclr
库,但我想避免使用它...
我的项目在Managed C ++中,库tetgen - 需要/ clr - 在 native C ++中,如果没有/ clr开关就无法编译,因为我收到此错误< / p>
错误C3381:'tetgenio':程序集访问说明符仅在使用/ clr选项编译的代码中可用
另一个库triangle在C中。我在Visual Studio 2008上,项目以32位编译。
答案 0 :(得分:2)
我们可以使用更多细节,但使用托管C ++,您当然可以使用托管代码和非托管代码。 (Microsoft称其托管c ++代码为C ++ / CLI。)
编辑:
好的,您的编译器错误有帮助。显然,您已指定了本机类,但在本机类的名称上使用了public private或其他一些访问说明符。来自MSDN文档:
以下示例生成C3381:
// C3381.cpp
**public** class A { // C3381. Remove public or make the class
managed. };
int main() { }
所以摆脱public关键字,然后再尝试编译。
答案 1 :(得分:0)
您可以在一个解决方案中拥有多个项目。右键单击eolution资源管理器中的解决方案并添加 - &gt;现有/新项目。每个库项目都可以通过这种方式添加并拥有自己的clr设置。