Cygwin编程环境

目录

为什么用Cygwin

Cygwin的安装


为什么用Cygwin

1、兼容大部分windows和linux代码

     使用windows API和linux API的绝大多数代码都能用cygwin编译,甚至可以windows和linux混合编程。

2、命令行编译简洁高效

     不用IDE,摆脱IDE繁琐的设置和操作,专心代码编写

3、可以使用大部分的linux命令

     可以在windows下学习linux的命令,利用linux强大的命令行提高效率

 

Cygwin的安装

    1、从Cygwin的官网“http://www.cygwin.com/”下载setup-x86_64.exe (64-bit) 或者 setup-x86.exe (32-bit)

    2、运行setup-x86_64.exe

   

    3、下一步

   

    4、选择“Install from Internet”,然后下一步

   

    5、选择安装的目录,然后下一步

   

    6、选择下载的安装包存放的目录,然后下一步

   

    7、选择“Use System Proxy Settings”或者“Direct Connection”, 下一步

   

8、选择163的镜像源,这个镜像源是国内最快的,如果找不到,在User URL项中输入“http://mirrors.163.com/cygwin/”点击"Add"添加,然后下一步

9、搜索需要的软件包,在New那一栏选择要安装的版本,所有需要的包都选好后一直下一步即可。

使用小技巧:

1、Cygwin编译生成的可执行文件,依赖“C:\cygwin64\bin”下的动态库,为了能直接在windows的任意目录下双击运行,需要将“C:\cygwin64\bin”加入windows的环境变量。

2、安装完成后,在“C:\cygwin64\bin”下有个mintty.exe,可以将它拷贝到任意目录下,双击打开即可在当前目录下进入cygwin环境。

3、解决中文乱码问题

在cygwin\home\用户名\.bashrc中添加如下设置,并将mintty的字符集设置为UTF-8
#让ls和dir命令显示中文和颜色
alias ls='ls --show -control -chars --color'
alias dir='dir -N --color'
#设置为中文环境,使提示成为中文
export LANG="zh_CN.UTF-8"
export OUTPUT_CHARSET="UTF-8"

 

基本的C语言开发需要选择如下软件包:

(1)gcc-core

(2)gcc-g++

(3)make

Glib需要选择如下的包:

(1)libglib2.0_0

(2)libglib2.0-devel

sqlite需要选择如下的包:

(1)libsqlite3_0

(2)libsqlite3-devel

gtk3需要选择如下的包:

(1)mingw64-x86_64-gtk2.0(64bit)或者mingw64-i686-gtk2.0(32bit)

(2)mingw64-x86_64-gtk3(64bit)或者mingw64-i686-gtk3(32bit)

(3)mingw64-x86_64-gnome-themes-standard(64bit)或者mingw64-i686-gnome-themes-standard(32bit)

(4)xinit

其他相关的依赖包会自动下载并安装

GTK Demo

(1)gtk2.0-demo

(2)gtk3-demo

通过运行demo可以测试gtk环境安装的是否正确

 

### Cygwin 环境下使用 C/C++ 进行串口编程 #### 准备工作 为了在 Cygwin 下进行串口通信开发,需先确认已安装必要的软件包。这通常包括 `gcc-g++` 编译器以及可能需要用到的库文件和其他工具[^1]。 #### 打开并配置串口设备 在 POSIX 兼容系统(如 Linux 或者通过 Cygwin 实现兼容性的 Windows)中,打开串口的方式与其他文件相似: ```c #include <fcntl.h> /* File Control Options */ #include <unistd.h> #include <termios.h> int fd; fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY); // 对于 COM1 使用 "/dev/ttyS0" if (fd == -1){ perror("open_port: Unable to open /dev/ttyS0"); } else{ fcntl(fd, F_SETFL, 0); } ``` 这段代码尝试以读写模式打开 `/dev/ttyS0` 设备节点,并清除任何特殊标志位来确保正常操作[^2]。 #### 设置波特率及其他参数 一旦打开了端口,则需要对其进行适当配置以便能够正确发送和接收数据: ```c struct termios options; tcgetattr(fd, &options); cfsetispeed(&options, B9600); // 输入速度设为 9600bps cfsetospeed(&options, B9600); // 输出速度也设为 9600bps // 配置其他选项... options.c_cflag |= (CLOCAL | CREAD); // 启用本地连接而非远程连接;启用接受字符 options.c_cflag &= ~PARENB; // 关闭校验位 options.c_cflag &= ~CSTOPB; // 请求单停止位(默认) options.c_cflag &= ~CSIZE; // 掩码掉字符大小部分 options.c_cflag |= CS8; // 选择每字节 8 个数据位 options.c_cc[VTIME] = 0; // 定义非规范输入处理超时时间 options.c_cc[VMIN] = 1; // 至少等待一个字符才返回 read() 调用 tcsetattr(fd, TCSANOW, &options); // 应用新的属性设置 ``` 上述片段展示了如何调整终端 I/O 属性结构体中的字段值,从而实现对特定串行接口特性的控制[^3]。 #### 发送与接收数据 完成初始化之后就可以开始传输信息了: ```c char buffer[] = "Hello Serial Port!"; write(fd, buffer, sizeof(buffer)); read(fd, buffer, BUFFER_SIZE); printf("%s\n", buffer); close(fd); ``` 此段简单示范了向串口写入字符串消息的过程,同时也包含了从同一通道读取响应的方法[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值