msvc + GNU 制作

Posted

技术标签:

【中文标题】msvc + GNU 制作【英文标题】:msvc + GNU make 【发布时间】:2010-10-17 20:30:16 【问题描述】:

我知道 windows 上最快和最轻量级的二进制文件只生成 msvc 编译器

msvc Express 版是免费的 http://www.microsoft.com/express/windows/

但是如何使用 cl.exe 而不是 g++.exe 呢?

是否有可能通过使用 GNU make 变量来生成适用于 cl.exe 和 g++ 的 makefile?

例如 http://msdn.microsoft.com/en-us/library/19z1t1wy(v=VS.80).aspx

export CC = path/to/cl.exe
export COMPILE_WITHOUT_LINKING = /c
export OBJECT_FILE = /Fo

还是 cl 和 g++ 的概念有很大不同?

【问题讨论】:

-1 表示初始假设不正确。 【参考方案1】:

当然可以。 cl.exe 只是另一个命令行工具。但是,这两个编译器在更高级的用法上有所不同,因此可能很难使用cl.exe 作为g++ 的直接替代品。

【讨论】:

【参考方案2】:

Make(GNU make 或其他)可用于运行您喜欢的任何程序来生成文件。它是一个完全与语言无关的抽象依赖生成系统。但是,如果您尝试使用使用标准 POSIX 样式编译器/链接器命令行的现有项目,并使其使用 MSVC 的cl.exe,您可能会遇到很多不兼容的命令行语法问题,更不用说cl.exe 仍在努力遵守它声称支持的古老标准,更不用说 C99。

总而言之,gcc 无疑是一个更好的选择,如果您有选择的话。

【讨论】:

以上是关于msvc + GNU 制作的主要内容,如果未能解决你的问题,请参考以下文章

cmake:MSVC,GNU解决bigobj问题

MSVC下使用gnu regex(正则表达式C语言接口regex.h)

如何在 GDB 可以中断但不能算作函数的 GNU GAS ELF 输出中制作本地标签?

CMAKE_GNUtoMS:将GNU格式库转换为MSVC格式

MinGW跟MSVC的区别跟选择

使用QT制作桌面小工具