dev C++ windows程序 undefine reference to

本文转自:http://yadang418.blog.163.com/blog/static/268436562009113233256/

-mwindows -lcomctl32 -lwinmm -lws2_32 -lodbc32 -lmysql   -lwinspool
1.工具-编译选项-编译器-在连接器命令行加入以下命令:
-mwindows
 2.出现错误:undefined reference to `PlaySoundA@12'
    解决办法:工具-编译选项-编译器-在连接器命令行加入以下命令:-lwinmm
3.undefined reference to `CreateStatusWindowA@16':
  在工程设置中添加 comctl32.lib 
  在link选项中添加-lcomctl32

-mwindows -lcomctl32 -lmysql -lwinmm
4.DEV C++无法调试问题:
 编译器里,勾上 编译时加入以下命令
  输入: -g
5.undefined reference to `EnumPrintersA@28'
 -lwinspool
6.
对于mingw,使用WIN32API函数需要包含相应的头文件,比如gethostname需要 #include <winsock.h>,连接时加-lwsock32。
7. undefined reference to `WSAStartup@8'
-lws2_32  
8.提示WM_CTLCOLOR未定义
  引入 : #include <windowsx.h> 
9.连接ms sqlserver数据库错误:
Objects/MingW/main.o:main.c:(.text+0x398e): undefined reference to `SQLAllocHandle@12'
Objects/MingW/main.o:main.c:(.text+0x39b6): undefined reference to `SQLSetEnvAttr@16'
Objects/MingW/main.o:main.c:(.text+0x39d6): undefined reference to `SQLAllocHandle@12'
....
-lodbc32

 

第二种方案:http://www.cnblogs.com/vilyLei/articles/1812634.html

 

    我在windows xp下使用Dev-c++构建一个socket应用,我使用
    #include <winsock.h> 或 #include <winsock2.h> 都会出现下面的大片错误:
[Linker error] undefined reference to `WSACleanup@0'
[Linker error] undefined reference to `WSAStartup@8'
...
我在Project -> Project Options -> parameter -> linker 输入框内输入:
ws2_32.lib
结果出现了下面的错误信息:
[Build Error]  [socketObject.exe] Error 1
我查了Compile Log得到的关键log信息是:
g++.exe: ws2_32.lib: No such file or directory


原来是找不到 ws2_32.lib,我检查了一下C:\Dev-Cpp\lib\下的库文件,发现根本就


没有ws2_32.lib这个文件。
于是上网搜了一下,有网友说对于Dev-c++应该是libws2_32.a
天,
原来是这个文件。
我很高兴的将这个lib文件加到linker中,兴奋地去编译,结果仍然是:
g++.exe: libws2_32.a: No such file or directory
草,真是气人。
我接着点击 linker 区域下方的一个按钮:Add Library or Object
用这个方法将libws2_32.a添加到linker: C:/Dev-Cpp/lib/libws2_32.a
这次编译竟然顺利通过了。


我将这次的遇到的问题及其解决过程记录下来,希望对其他的朋友有帮助。
也在此谢谢其他朋友对我的指点。
在网上搜到的相关信息我也罗列到下面:


在工程里已经#include <winsock2.h>了结果还是报错,郁闷死了,我用的是Dev-C++,起先还以为是IDE的问题,结果换成VC6.0还是同样的错误。最后在网上终于找到问题的原因,很快搞定了。顺便做一下笔记,以防以后再出现这种问题。
VC6.0下的错误信息:
error LNK2001: unresolved external symbol __imp__socket@12
error LNK2001: unresolved external symbol __imp__WSAStartup@8
Dev-C++下的错误信息:
[Linker error] undefined reference to `WSAStartup@8'
[Linker error] undefined reference to `socket@12'


错误原因:因为没有联接socket库ws2_32.lib。
解决办法:对于VC6.0要在porject/settings的link页面中object/library modules中添ws2_32.lib就可以了;对于Dev-C++同样在工程/工程属性的参数页面中连接器那一栏中添加库,这时必须找到库文件的目录,对于Dev-C++的对应库文件是libws2_32.a,在软件安装下lib文件夹中可以找到相应的库文件。
总结:所有运用到WinSock2的程序在编译连接时都要用的该库

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值