eclipse c mingw+mingw中编写c的问题

【求助】eclipse+mingw+qt搭建C++开发QT IDE问题
[问题点数:40分,结帖人hurricanez]
【求助】eclipse+mingw+qt搭建C++开发QT IDE问题
[问题点数:40分,结帖人hurricanez]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关推荐:
2015年5月 Java大版内专家分月排行榜第二2013年5月 Java大版内专家分月排行榜第二
2011年5月 Java大版内专家分月排行榜第三2011年1月 Java大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。关于Windows下使用Eclipse、CDT和MinGW的一个问题。编译不产生二进制文件,还报错。_百度知道
关于Windows下使用Eclipse、CDT和MinGW的一个问题。编译不产生二进制文件,还报错。
在Windowns下安装好了Eclipse CDT和MinGW,在Eclipse中可以新建两种C/C++的Excutable工程,一种是Empty Project,另外一种是Hello World C++ Project。现在的问题是,如果新建的是前者那种工程,那么程序编译之后没有产生二进制文件,而且提示什么undefined reference to `WinMain@16'collect2: ld returned 1 exit status之类的问题i;如果新建的是Hello World工程则可以正常编译和运行。请问一下肿么办?
我有更好的答案
贴一段错误消息出来看看,有个上下文比较容易地了解错误原因。它之前有没有其它的错误?
绿色的背景要搭配什么样的颜色才好看
其他类似问题
为您推荐:
mingw的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁1444人阅读
使用Eclipse(CDT)和MinGW构建Windows上的C/C++开发环境&
多年以来,一直使用Eclipse作为自己的Java IDE, 觉得最好的一点就是它的编辑器功能,所以也尝试使用Eclipse+CDT作为自己的C/C++开发平台,不过早期的CDT版本中编辑器功能以及提供的开发方式并不尽如人意。随着CDT的不断发展,在这些方面都有了长足的进步,已经可以用来作为主要C/C++开发平台。
本文详细介绍了在Window系统上使用Eclipse和MinGW作为C/C++开发平台的的安装和配置过程。
各个软件版本是到目前为止(日)的最新稳定版本:
Eclipse 3.5.1
MinGW (MinGW-5.1.6, gdb for mingw 6.8, MSYS-1.0.11)
MinGW的安装与配置
这里我们采用自动安装方式,手动安装可以参考MinGW.org的在线文档 .
1. 在MingGW的下载页面 下载并运行MinGW-5.1.6.exe
2. 在安装向导的各个页面:
Install orjust download files? -& Download and install
Choose Package -& Current
Choose Components -& MinGW base tools, g++ compiler (不要选择MinGW Make,我们后面要安装的MSYS里面带了更完善的make工具)
Destination Folder -& 输入你要安装到的位置,比如D:\C\MinGW
3. 安装完成后,把MinGW的bin目录,比如D:\C\MinGW\bin加到系统的环境变量PATH中
4. 验证安装: 写一个简单的test.c程序,在命令行输入gcc -o test.exe test.c , 看编译是否正常//或者直接在cmd状态下,Input:gcc ,若提示为,gcc:no input file,则安装okay
GDB for MinGW
在上面安装的MinGW中,并不包括gdb。为了debug我们的程序,需要单独下载和安装gdb
1. 在MingGW的下载页面 中GNU Source-Level Debugger下,下载gdb-6.8-mingw-3.tar.bz2
2. 使用7-zip解压缩到MinGW的安装目录
3. 验证安装
写一个简单的test.c程序,在命令行输入gcc -o test.exe -g test.c
在命令行运行 gdb test.exe
在gdb& 提示符后,输入list ,查看打印出的test.c程序
&如下,附上简单的基于mingw的code:
使用MinGW进行编译和创建(应有程序)
怎样创建一个终端应用程序
这里有一个例子。下面是一个简单的c语言程序的代码示例,请把它剪切并粘贴到一个叫作hello.c的文件中试试看:
#include &stdio.h&
int main(int argc, char **argv)
printf (&Hellon&);
return (0);
假如你想从hello.c生成一个在终端模式下的可执行文件hello.exe.试一下下面的方法:
gcc -c hello.c
这个命令把hello.c编译成一个目标文件hello.o,然后用下面的方法:
gcc -o hello hello.o
这个命令从hello.o文件生成一个可执行的hello.exe文件。事实上,作为一种选择,你可以使用下面的命令把编译和链接放到一步中完成:
gcc -o hello hello.c
下面是一个简单的c++程序的代码示例,复制并粘贴到一个叫hello.cpp的文件中试试看:
#include &iostream&
int main(int argc, char **argv)
std::cout && &Hello& && std::
return (0);
对于c++程序来说,使用下面的命令来编译和链接:
g++ -c hello.cpp
g++ -o hello hello.o
(同样你可以把他们合并到一步中完成)
2.如何创建windows应用程序
这里有一个例子。下面是一个简单的windows应用程序的代码示例,请把它复制并粘贴到一个叫作hello.c的文件中试试看 :
#include &windows.h&
int WINAPI WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
MessageBox (NULL, &Hello&, &Hello Demo&, MB_OK);
return (0);
假如你想从一个叫hello.c的c语言源文件创建一个从窗体执行的(Windows executable)hello.exe,请试用下列命令:
gcc -c hello.c
首先产生了目标文件hello.o,然后用:
gcc -o hello hello.o -mwindows
这会从hello.o创建一个可执行的hello.exe, -mwindows用来说明要创建的是Windows应用程序而非从终端执行的程序,它确保正确的Windows库被链接。
要同时得到一个终端屏幕和标准的Windows应用程序,在
-mwindows标志后面增加一个-mconsole标志(flag)
假如你有新的资源(一个后缀名为.rc的文件)也要添加到你的程序中,你需要编译这些资源文件(resource file)和别的一些资源文件,并且在链接时包含进这些编译过的资源文件以创建你的程序,下面的例子将告诉你怎样编译和链接一个叫做resfile.rc的资源文件:
windres -o resfile.o resfile.rc
gcc -o hello hello.o resfile.o -mwindows
3.怎样创建dll文件?
这里有个例子。把下面的代码复制并粘贴到一个叫dllfct.h的文件中:
#ifdef BUILD_DLL
// the dll exports
#define EXPORT __declspec(dllexport)
// the exe imports
#define EXPORT __declspec(dllimport)
// function to be imported/exported
EXPORT void tstfunc (void);
把下面的代码复制并粘贴到一个叫dllfct.c的文件中:
#include &stdio.h&
#include &dllfct.h&
EXPORT void tstfunc (void)
printf (&Hellon&);
把下面的代码复制并粘贴到一个叫hello.c的文件中:
#include &dllfct.h&
int main ()
tstfunc ();
return (0);
为了创建一个dll和一个使用他的程序,试试下面的命令:
gcc -c hello.c
gcc -c -DBUILD_DLL dllfct.c gcc -shared -o tst.dll -Wl,--out-implib,libtstdll.a dllfct.o
gcc -o hello.exe hello.o -L./ -ltstdll
MSYS是一个window上的类似bash 的shell,可以用来替代Windows自带的cmd.exe。它提供了部分Unix平台上的常用工具,包括make。我们需要安装它,以支持在Eclipse CDT上开发使用Makefile的程序。
1. 在MingGW的下载页面 中MSYS Base System下,下载并运行MSYS-1.0.11.exe
2. 安装过程中,指定安装目录,假定是D:\C\msys\1.0
3. 安装到100%时,会弹出DOS窗口,询问是否继续进行post install, 输入y
Do you have MinGW installed?[yn] -& y
Where is your MinGW installation? -& D:/C/MinGW (请用真实的安装目录替换,注意路径分隔符要使用斜杠&/&)
4. 安装结束后,把MSYS的bin目录,比如D:\C\msys\1.0\bin加到系统的环境变量PATH中
5. 在命令行输入make -v 验证安装
Eclipse的安装与配置
如果还没有安装JDK ,请先到SUN 的网站 下载安装JDK1.6 (Java SE 6).
对于Eclispe,推荐下载 集成好CDT 的Eclipse 版本,这样配置起来最简单,问题也最少。
下载集成好CDT 的Eclipse(Eclipse IDE for C/C++ Developers ) windows版本 后,解压缩即可。
简单的C项目示例
假设现在要编写一个华氏温度和摄氏温度之间换算的程序,并按照模块分成了以下三个源程序:
1. temp_convert.h
view plaincopy to clipboardprint?
#ifndef _TEMP_CONVERT_H_
#define _TEMP_CONVERT_H_
double c2f(double);
double f2c(double);
2. temp_convert.c
view plaincopy to clipboardprint?
#include &temp_convert.h&
double c2f(double c) {
return c * 9.0 / 5.0 + 32;
double f2c(double f) {
return (f - 32.0) * 5.0 / 9.0;
view plaincopy to clipboardprint?
#include &stdio.h&
#include &temp_convert.h&
int main() {
double i = 0;
printf(&Fahrenheit\tCelsius\n&);
for (; i &= 100; i++) {
printf(&%10.2f\t%7.2f\n&, i, f2c(i));
使用Internal Builder
这种方式不需要自己编写makefile,适用于结构简单的项目。
在创建项目的时候,选择 C Project-&Executable-&Empty Project, ToolsChains 选择 MinGW GCC
把上面的三个程序加入项目,选择Run as &Local C/C++ Application&既可编译运行。
单独编写makefile
对于结构复杂,模块比较多的项目,我们需要编写makefile,来更好的控制程序的编译以及其他相关过程。
在创建项目的时候,选择 C Project-&Makefile Project-&Empty Project, ToolsChains 选择 MinGW GCC
把上面的三个程序加入项目,然后新建一个makefile,内容如下:
view plaincopy to clipboardprint?
EXE_TARGET = temp_convert.exe
CFLAGS = -Wall
COMPILE = $(CC) $(CFLAGS) -c
SRCS = $(wildcard *.c)
OBJS = $(patsubst %.c,%.o,$(SRCS))
all: $(EXE_TARGET)
$(EXE_TARGET): $(OBJS)
$(CC) -o $(EXE_TARGET) $(OBJS)
main.o temp_convert.o: temp_convert.h
$(COMPILE) -o $@ $&
-rm $(OBJS) $(EXE_TARGET)
编译的时候,选择Build Project既可,会默认执行all这个target。对于其他的make target,可以在makefile的Outline里面,选中某个target,然后右键菜单&Add make Target&.
Eclipse CDT online help: C/C++ Development User Guide
MinGW.org: Getting Started
附:other info
& & SourceForge上的MinGW项目里有很多软件包,这些软件包之间互有重叠,相当混
乱,也没有安装说明。实际上,要构建一个MinGW 的开发环境,只需要安装下面四个
MSYS-1.0.10.exe
MinGW-5.1.3.exe
gdb-5.2.1-1.exe
msysDTK-1.0.1.exe
& & 下面是这些软件包的说明:
MSYS-1.0.10.exe - Minimal SYStem
& & 一个Unix仿真Shell环境,类似Cygwin。安装后会提示定位MinGW的目录,也可以
通过手工修改安装目录下的etc/fstab来完成。
MinGW-5.1.3.exe - MinGW
& & 这只是一个下载器,相当于Cygwin的setup.exe。运行后会自动获取mingw.ini文
件,其中包含Current、Previous、Candidate三个版本的文件列表。目前选 Current
版本会安装以下这些:
mingw-runtime-3.13.tar.gz
w32api-3.10.tar.gz
binutils-2.17.50-.tar.gz
gcc-core-3.4.5-.tar.gz
gcc-g++-3.4.5-.tar.gz
gcc-g77-3.4.5-.tar.gz
gcc-ada-3.4.5-.tar.gz
gcc-java-3.4.5-.tar.gz
gcc-objc-3.4.5-.tar.gz
mingw32-make-3.81-2.tar.gz
& &&安装后就得到了一个基本的Win32 gcc开发环境。该环境可以集成在MSYS 中,也
可以独立运行。建议把MinGW安装到MSYS的安装目录下的mingw目录。
gdb-5.2.1-1.exe
& & 这个虽然版本比较老,不过目前Current的就是这个。安装到MinGW的目录下。
msysDTK-1.0.1.exe - MSYS Developer Tool Kit
& & MSYS只包含了sh、sleep、等最基本的工具,而msysDTK中提供了更多开发工具。
如perl、openssh、automake、autoconf等。仅安装msysDTK-1.0.1.exe中并不能得到
完整的msysDTK,还需要手工安装以下软件包:
bison-2.0-MSYS.tar.gz
file-4.16-MSYS.tar.bz2
join_paste_textutils-2.1-MSYS.tar.bz2
m4-1.4.7-MSYS.tar.bz2
mktemp-1.5-MSYS.tar.bz2
msys-autoconf-2.59.tar.bz2
msys-automake-1.8.2.tar.bz2
msys-libtool-1.5.tar.bz2
& & 安装方法就是在根目录下解压缩这些文件。
& & 一般来说,安装以上四个软件包后,就可以进行绝大多数基于MinGW 的开发了。
如果有需要还可以安装mingw-utils、insight等其他软件包。
& & 另外,MSYS-1.0.10.exe带的Shell是bash 2.04,建议安装bash 3.1或者更新的。
& & 如果需要不同版本的gcc编译环境,建议在根目录下建立若干MinGW目录,使用时
通过修改etc/fstab来控制/mingw指向不同版本。这也是为什么不推荐把MinGW直接装
到MSYS根目录的原因。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:98405次
积分:1259
积分:1259
排名:第18306名
原创:23篇
转载:60篇
(1)(3)(4)(3)(11)(5)(5)(2)(1)(3)(6)(1)(2)(1)(16)(6)(11)(2)

我要回帖

更多关于 eclipse cdt mingw 的文章

 

随机推荐