使用SimpleSocket使用Code :: Blocks编写的SimpleSocket对C 程序中函数的未定义引
undefined reference to functions in C++ Program using SimpleSocket written using Code::Blocks
我正在尝试在使用simplesockets的code ::块中编写一个C 程序。我程序中的文件位于我的程序中,main.cpp,simplesocket.cpp,vassiveockets.cpp,activesockets.cpp,simplesocket.h,vassivesockets.h,activeSockockets.h。所有这些文件都在同一目录中,并且使用引号(#include" simplesocket.h")包含在main.cpp中。当我尝试编译时,我会收到以下一些错误。
----------------构建:SYS32中的调试--------------------
g 。exe -wall -g -i" c: documents and Settings inderdingator my documents my Docormess curl-7.27.0-devel -mingw32" -ic: mingw mingw mingw mingw32 -ic: mingw mingw mingw \\\\\\\\\\\\\\lib gcc mingw32 -ic: mingw lib gcc gcc mingw32 4.7.0 -ic: mingw lib lib gcc gcc gcc mingw32 4.7.7.0.0.0.0.0.0 include -ic: mingw lib gcc gcc gcc gcc gcc gcc mingw32 4.7.0 include c 向后-IC: mingw lib gcc gcc mingw32 4.7.0 include c c mingw32 -c c: system32 sys32 sys32 sys32 main.cpp -o obj obj debug ebj debug main.o在C中包含在C: System32 Sys32 ActiveSocket.h:46:0的文件中 来自c: system32 sys32 main.cpp:2:
未定义的引用`_htons@4
未定义的引用`_inet_addr@4
未定义的引用`_inet_addr@4
未定义的引用..............................
未定义的引用..............................
这些错误来自simplesockets.cpp,vassiveockets.cpp和activesockets.cpp。从我可以在Stackoverflow上找到的这种错误是链接错误。我发现该帖子将文件添加到项目中,但无效。Stackoverflow上有很多东西,但我似乎找不到如何使其工作。我正在寻找code ::块中的位置,我可以手动链接另一个.cpp文件。我什至尝试将编译器从Migw32-G 更改为G ,只是为了看看会发生什么。
我还尝试使用-lw2_32.lib命令构建,但我仍然遇到相同的错误。以下是添加该命令后的输出。
----------------构建:SYS32中的调试--------------------
g++.exe -Wall -g -lws2_32.lib -I"C:Documents and SettingsAdministratorMy DocumentsDownloadscurl-7.27.0-devel-mingw32" -IC:MinGWmingw32 -IC:MinGWlibgccmingw32 -IC:MinGWlibgccmingw324.7.0 -IC:MinGWlibgccmingw324.7.0include -IC:MinGWlibgccmingw324.7.0includec++backward -IC:MinGWlibgccmingw324.7.0includec++mingw32 -c C:system32sys32PassiveSocket.cpp -o objDebugPassiveSocket.oIn file included from C:system32sys32ActiveSocket.h:46:0,from C:system32sys32PassiveSocket.h:45,from C:system32sys32PassiveSocket.cpp:43:
PassiveSocket.cpp:70: undefined reference to htons@4
PassiveSocket.cpp:78: undefined reference to htonl@4
PassiveSocket.cpp:82: undefined reference to inet_addr@4
再次感谢您的帮助。
我收集的是您正在使用code :: blocks mingw combo和没有任何其他编译器。
转到Project->构建选项
单击"链接器设置"选项卡,然后在"其他链接器选项:"多行文本框中添加以下内容: -
-lwsock32
-lws2_32
记住将每个条目放在新线上。
请注意,我省略了" .lib"文件扩展名
编译时将-lws2_32.lib
放置。
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- C++:TypeDef使用元组
- 使用std::multimap迭代器创建std::list
- 从不同线程使用int64的不同字节安全吗
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么在全局范围内使用"extern int a"似乎不行?
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 如何使用Google Mock来模拟gettimeofday()
- 如何使用默认参数等选择模板专业化
- 为什么使用 "this" 指针调用派生成员函数?
- 使用新行和不使用新行读取文件
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 如何确定我已使用非编码文件到达 EOF?
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 使用CMake创建QML插件
- 使用strcpy将char数组的元素复制到另一个数组
- 在c++中使用nlohmann从类到json的转换
- 使用指针从C++中的数组中获取最大值
- 使用SimpleSocket使用Code :: Blocks编写的SimpleSocket对C 程序中函数的未定义引