【发布时间】:2011-12-01 20:40:29
【问题描述】:
我正在使用 Visual Studio 2008 将基于 Unix 上的 GCC 构建的代码移植到 Windows。我想创建一个不依赖于我自己创建的任何 dll 并且仅内置于Windows 操作系统。
我的代码包含 zlib,它本身包含 C 文件,我可以构建这些文件并将其链接到我的 Unix 可执行文件中。
在我开始尝试构建时,我遇到的第一个错误是 zlib 中的 C 代码不能用 CLR 构建,因为它不是 C++。
我看到有人建议将其分解为一个单独的 DLL,该 DLL 将链接到我的可执行文件中,但我想尽可能避免共享库的复杂性。 (或许这种回避更加复杂?)
有没有办法将我的 C++ 与 zlib 的 C 代码混合成一个带有 CLR 的可执行文件?
我当前的构建错误如下:
1>cl : Command line error D8045 : cannot compile C file '..\src\zlib-1.2.5\zutil.c' with the /clr option
【问题讨论】:
-
您不能使用没有依赖关系的 /clr 编译目标文件创建程序。除了必须安装 .NET,您还需要部署 CRT 的 DLL 版本。
-
还有一些 zlib 版本的 win32 端口:gnuwin32.sourceforge.net/packages/zlib.htm
标签: c++ c visual-studio-2008 clr porting