您的位置:首页 > 其它

64位 Windows 8.1 安装 MinGW 与简单测试

2015-05-21 00:40 337 查看
本文简要一下记录一下在 64bit Windows 8.1 下,进行 MinGW 的安装以及的简单测试工作,IDE使用codeblocks;本文目的是在windows上搭建一个32位linux的开发环境,便于后期移植到linux上。

MinGW的是windows平台上比较好用的一套GNU工具集,官方网站是:http://www.mingw.org/

截至本文发出时,官网右上角仍有个按钮[Download Installer],点击可下载MinGW的在线安装工具

我主要装了一下几个部分的插件,大家可以按照自己的需求安装:

Basic Setup
mingw-developer-toolkit bin[An MSYS Installation for MinGW Developers]
mingw32-base bin[A Basic MinGW Installation]
msys-base bin[A Basic MSYS Installation]

All Packages
MinGW
MinGW Libraries
mingw32-pthreads-w32 dev[POSIX threading library for Win32]

然后,点击Installation->Apply Changes,不出意外的话,等几分钟应该就安装完毕了

                           分割线,以上是MinGW的安装,以下是codeblocks配置[u]                           [/u]

codeblocks也是一款比较好的跨平台IDE,小巧,功能也不弱,官方网站是:http://www.codeblocks.org/

安装完以后,点击Settings->Compiler...,选择GNU GCC Compiler,选择Toolchain executables选项卡,点击Auto-detect,
MinGW如果正常安装了的话,应该编译工具链已经检测到了。

我在这里将link for dynamic libs也用的是mingw32-gcc.exe

选择Search directories

将MinGW安装目录下的include目录添加至Compiler选项卡下
将MinGW安装目录下的lib目录添加至Linker选项卡下

                           分割线,以上是codeblocks的配置,以下是环境测试部分                           



本文在测试环境时仅仅测试了一个系统调用getpid(),一个头文件unistd.h(包含sleep()),一个多线程的创建

以下是测试代码:
#include <unistd.h>
#if defined _UNISTD_H
#define _TIMESPEC_DEFINED
#endif // defined
#include <pthread.h>
#include <stdio.h>

void *test_thread(void *args) {
printf("pid=%d:%s\n",getpid(),(char*)args);
sleep(3);
return NULL;
}
int main() {
char buf[] = "test";
pthread_t thread;
(void)(!pthread_create(&thread,NULL,test_thread,buf)&&pthread_join(thread,NULL));
return 0;
}

在编译过程中,产生了一个错误,timespec结构体重定义,查看了unistd.h头文件与pthread.h头文件以后,发现是由于unistd.h与pthread.h
对timespec结构体定义的保护宏不同所致,故添加了以下代码
#if defined _UNISTD_H
#define _TIMESPEC_DEFINED
#endif // defined
链接pthread库
选择Project->Build Options...,选中所测试源码所属的build target,选择Linker settings
如果测试源代码目录与libpthread.a所在目录不一样,则在左侧选择了添加libpthread.a库同样还是无法找到
此时需在other linker option里添加选项-lpthread
                           分割线,以上是环境测试部分,以下是环境测试结果                           
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mingw 多线程 测试