为什么devc++文件里没有lib32

为什么devc++文件里没有lib32,第1张

我在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的程序在编译连接时都要用的该库

原文链接:https://www.cnblogs.com/vilyLei/articles/1812634.html

电脑是win7 64位, Dev-Cpp安装路径是C:\Dev-Cpp,此目录下有 MinGW64,即windows版GCC的根目录。

下载SDL

打开 http://www.libsdl.org/download-2.0.php

找到开发库Windows下 SDL2-2.0.3-mingw.tar.gz 点击下载。

也可以直接点击 http://www.libsdl.org/release/SDL2-devel-2.0.3-mingw.tar.gz

因为前面Dev-Cpp中装是MinGW64,所以解压后进入SDL开发库中的 x86_64-w64-mingw32目录

将 F:\Downloads\SDL2-2.0.3\x86_64-w64-mingw32\include\SDL2 下所有头文件复制到 C:\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include;

再将 F:\Downloads\SDL2-2.0.3\x86_64-w64-mingw32\lib 所有 lib* 文件复制到 C:\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib

==========================================================================================

接下来创建一个测试程序。

在Dev-Cpp中创建一个C项目, 添加main.c

[cpp] view plaincopy

#include <stdio.h>

#include <stdlib.h>

#include <SDL.h>

int main(int argc, char * argv[])

{

if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)

{

fprintf(stderr, "SDL_Init() failed")

exit(-1)

}

printf("SDL_init() success")

SDL_Quit()

return 0

}

配置项目需要链接的库 -lmingw32 -lSDL2main -lSDL2

完了可以正常编译,但是运行失败,这是由于运行时找不SDL2.dll。

把 F:\Downloads\SDL2-2.0.3\x86_64-w64-mingw32\bin\SDL2.dll 复制到 C:\Windows\System32\目录下,或者是把这个SDL2.dll复制到 编译生成的exe文件所在目录。

在开发中,SeqStack 是一种顺序栈结构,它提供了在元素结构为连续的内存块时进行数据 *** 作的方法。如果您在使用 SeqStack 时遇到了错误,这可能与以下原因有关:

1. 库未正确链接:请确保您的工程已正确链接源文件和库文件,且路径正确。

2. 头文件未正确包含:请检查您是否包含了正确的头文件,并确保头文件的路径与源文件的路径相对应。

3. 编译器不支持某些语法:一些编译器可能不支持某些 SeqStack 实现语法,建议检查编译器的版本和语法支持情况。

4. 变量命名重复:请检查 SeqStack 文件和其他源文件的变量名或函数名是否有冲突, such as C++ 的命名空间问题。

5. 函数参数不正确:请检查 SeqStack 函数的参数是否正确,并确保它们的顺序正确。

如果您可以提供更多细节,如报错信息、代码等等,将有助于我们更准确地解决您的问题。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11401341.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存