Windows下各种C/C++ 编译方法及对比,vc bc5 gcc .net

本文介绍在Windows环境下使用不同编译器进行C/C++编程的方法,包括Visual C++、Borland C++5、GCC及.NET Framework的编译流程,并提供了具体的编译命令示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows下各种C/C++ 编译方法及对比
以下是介绍给大家,在Windows中使用c/c++编译器
我个人简单汇编了一些,把一些c放在一起对比
vc bc5 gcc .net

我这里有已经打包好的简洁的全部环境包

 

首先我们写两个简单的通用的程序

test.c

#include <stdio.h>
int main(int argc,char *argv[])
{
   printf("\nTest\n");
   return 0;
}

保存
这个是console的

wintest.c
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{
       MessageBox(NULL,"欢迎使用 C for Windows 学习","第一个Windows程序",MB_OK);
       return 0;
}

保存
这个是windows程序

cswin.cs

using System;
using System.Windows.Forms;
using System.Drawing;
public class MyForm:Form
 {
  public MyForm()
   {
    this.Text = "Hello World";
   }
 }
 public class Demo
 {
  public static void  Main()
    {
     Application.Run(new MyForm());
    }
 }
保存
这个文件是用来.net编译的

sample.ico
图标文件

1.
visual c++ 简称vc ,微软的,很强大
我们这里介绍都是在命令行上使用,至于ide,就不说了
主要是为了编译方法,以下的都是这样
主要是PATH的搜索路径要保证
还有一些可以自己设定的环境变量
先有一个vc的环境,简单的环境要求是这样的
vc\Common
vc\VC98
这两个文件夹及内容要有
先设定PATH
如果方便可以自己定批处理
set vc_dir=%CD%\vc\vc98
set PATH=%PATH%;%vc_dir%\bin
set vc_lib=%vc_dir%\lib\*.lib
set vc_inc=%vc_dir%\include
这里的%CD%是你的当前目录了
这样设定后你输入cl
就可以看到编译信息了
下面就是在上面条件执行后,怎么编译
如果想要一个图标,那么先编辑一个rc文件
sample.rc
文件内容

A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "sample.ico"

保存

rc.exe sample.rc

cl.exe wintest.c sample.res /I %vc_inc% /link %vc_lib%

执行后就会有wintest.exe

你就可以用了

2.Borland C++ 5
这个和一般的C不一样
要求在BCC5\bin下有bcc32.cfg ilink32.cfg

这里编译一个批处理bcc5path.bat

set PATH=%CD%\bin

if exist bcc32.cfg del bcc32.cfg
echo -I"%CD%\include">>bcc32.cfg
echo -L"%CD%\lib">>bcc32.cfg
move bcc32.cfg .\bin

if exist ilink32.cfg del ilink32.cfg
echo -L"%CD%\lib">>ilink32.cfg
move ilink32.cfg .\bin
存在BCC5目录中
执行后就有环境了
bcc32 test.c
这样就是编译的test.exe 就是console的程序了
要是windows的程序,要麻烦点
资源文件rc也和vc的不一样
sample.rc
内容
myico ICON sample.ico
保存

brcc32 sample.rc
bcc32 -W -c wintest.c
ilink32 -v wintest.obj import32.lib cw32.lib c0w32.obj /aa,,,,,sample.res
del wintest.obj wintest.ilc wintest.ild wintest.ilf wintest.ils wintest.map wintest.tds sample.res

wintest.exe 就是你要要的windows程序了

3.windows 下 gcc 编译程序
安装 mingw32

set gcc_home=%CD%\gcc
set PATH=%PATH%;%gcc_home%\bin

gcc -v
可以看到版本信息

gcc test.c -o test.exe
这就是终端console程序了
sample.rc 就和vc的rc文件一样

windres --input-format=rc -O coff -i sample.rc -o sample.res
gcc wintest.c sample.res -o wintest -mwindows

这样你就可以得到windows的wintest.exe程序

4.  .net  Framework\v2.0.50727 编译

C:
cd C:\WINDOWS\Microsoft.NET\
set framenet=%CD%\Framework
set PATH=%PATH%;%framenet%\v2.0.50727

保证csc.exe 可以执行
一般都在
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

编译cswin.cs
csc  cstest.cs
csc /target:winexe /win32icon:sample.ico cswin.cs

这样就得到了cswin.exe 这个.net程序要有.net2.0环境才运行的

 

<think>首先,用户的问题是:"请使用中文回答问题",意思是"Please use Chinese to answer the question"。然后,用户提供了额外的指令:在回答完问题后,必须提出3-5个相关问题,并以"§§相关问题§§"开头输出在末尾。 用户还提供了一个示例格式,是关于快速排序的Python代码。示例中,回答部分包括代码,然后以"§§相关问题§§"开头列出问题。 现在,用户的消息是:"./steamcmd.sh: line 37: /opt/mcsmanager/daemon/data/InstanceData/966b5bc5dda848d4b85db76d3fc9bde9/linux32/steamcmd: No such file or directory"。这看起来像是一个错误消息,可能是关于一个脚本或程序找不到文件。 用户没有明确的问题,但根据上下文,我需要用中文回答。消息似乎是关于一个错误:运行脚本时找不到文件。所以,我应该解释这个错误并提供帮助。 我的回答结构: 1. 用中文解释错误并提供可能的解决方案。 2. 在回答结束后,提出3-5个相关问题。 3. 相关问题的第一行必须是"§§相关问题§§",然后列出问题,不要换行分散。 错误消息翻译: - "./steamcmd.sh: line 37": 意思是脚本steamcmd.sh的第37行。 - "/opt/mcsmanager/daemon/data/InstanceData/966b5bc5dda848d4b85db76d3fc9bde9/linux32/steamcmd: No such file or directory": 意思是该路径的文件或目录不存在。 这似乎是关于SteamCMD的脚本,可能用于管理Minecraft服务器或其他游戏服务器。路径中包含"mcsmanager",可能指的是Minecraft Server Manager。 可能的解决方案: - 检查文件路径是否正确。 - 确保文件存在。 - 安装或重新安装SteamCMD。 - 检查权限问题。 现在,构建回答: - 开头解释错误。 - 提供建议。 - 然后以"§§相关问题§§"开头提出相关问题。 相关问题应该基于用户的查询: - 用户的问题是错误消息,所以相关问题可以是关于如何解决类似问题、安装软件等。 提出3-5个相关问题,例如: 1. 如何安装SteamCMD? 2. 如何解决文件或目录不存在的错误? 3. 什么是MCSManager? 4. 如何配置Minecraft服务器? 5. 如何检查文件权限? 确保回答用中文。 完整回答结构: 1. 解释错误。 2. 提供解决方案。 3. 输出"§§相关问题§§"。 4. 列出问题。 示例相关问题: - 1. 如何正确安装SteamCMD? - 2. 如何确保文件路径正确? - 3. 什么是MCSManager及其用途? - 4. 如何解决Linux下的文件不存在错误? - 5. 如何调试shell脚本错误? 现在,写回答。</think>根据您提供的错误消息 `./steamcmd.sh: line 37: /opt/mcsmanager/daemon/data/InstanceData/966b5bc5dda848d4b85db76d3fc9bde9/linux32/steamcmd: No such file or directory`,这是一个典型的文件或目录不存在的错误。错误发生在运行脚本 `steamcmd.sh` 的第 37 行,它试图访问路径 `/opt/mcsmanager/daemon/data/InstanceData/966b5bc5dda848d4b85db76d3fc9bde9/linux32/steamcmd`,但该文件或目录不存在。这通常与 SteamCMD(一个用于管理游戏服务器的工具)和 MCSManager(一个 Minecraft 服务器管理面板)相关。 ### 可能的原因和解决方案: 1. **文件未正确安装**:SteamCMD 可能未安装或安装路径错误。确保 SteamCMD 已正确安装。您可以通过以下命令安装: ```bash sudo apt-get update sudo apt-get install steamcmd ``` 或从官方源下载。 2. **路径配置错误**:MCSManager 的配置文件可能指定了错误的路径。检查 MCSManager 的实例配置文件(通常在 `/opt/mcsmanager/daemon/data/InstanceData/` 下的子目录),并确保路径指向实际的 SteamCMD 可执行文件(通常位于 `/usr/games/steamcmd` 或类似位置)。 3. **权限问题**:脚本可能没有访问权限。运行以下命令添加权限: ```bash chmod +x /path/to/steamcmd.sh ``` 并确保用户有读取 `/opt/mcsmanager/` 的权限。 4. **文件丢失或损坏**:如果文件被删除或损坏,重新安装 SteamCMD 或 MCSManager。参考官方文档: - [SteamCMD 安装指南](https://developer.valvesoftware.com/wiki/SteamCMD) - [MCSManager 文档](https://docs.mcsmanager.com/) 5. **其他检查**:确认系统架构(如 32 位 vs 64 位),因为错误提到 `linux32`,但您的系统可能是 64 位。尝试使用通用路径。 如果问题持续,请提供更多上下文(如操作系统版本和安装步骤),以便进一步诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值