使用clion开发webserver遇到的问题

文章目录

  • 文档介绍
  • 问题1多个引用未定义
  • 问题2 在clion中函数stat无法找到位于项目本地中的文件

文档介绍

我参考博客C语言手写HTTPD网站服务器学习如何通过C语言实现webserver。因为博主用的开发工具是vs2019,我用的是clion,在实现webserver的过程中即使使用了一样的代码也会遇到问题。这篇文章汇总了我遇到的问题

问题1多个引用未定义

错误信息

CMakeFiles/httpd.dir/main.cpp.obj: In function `main':
E:/Users/Dell/clionProjects/httpd/main.cpp:226: undefined reference to `__imp_accept'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

使用clion开发webserver遇到的问题_第1张图片
实验环境

clion 2021.3.4编译器
cmake版本3.21
MinGW64编译器 9.0版本

解决方法
在cmaklist.txt文件中加上

link_libraries(ws2_32 wsock32)

例如:我的cmakelist.txt文件

cmake_minimum_required(VERSION 3.21)
project(httpd)

set(CMAKE_CXX_STANDARD 11)

link_libraries(ws2_32 wsock32)

add_executable(httpd main.cpp)

使用clion开发webserver遇到的问题_第2张图片

问题2 在clion中函数stat无法找到位于项目本地中的文件

我在另一个项目中进行测试,源代码如下

#include 
#include 
int main() {
    struct stat buf;
    std::cout<

可以看到test.txt就在项目中
使用clion开发webserver遇到的问题_第3张图片
但执行代码后的结果却是-1

-1
进程已结束,退出代码0

解决方法
需要设置工作目录(Working directory),过程如下:
【菜单栏】=> 【Run】 => 【Edit Configurations】 => 【Working Directory】 => 【设置当前目录所在的根目录】
使用clion开发webserver遇到的问题_第4张图片
使用clion开发webserver遇到的问题_第5张图片
执行代码,成功找到test.txt文件。

0
进程已结束,退出代码0

你可能感兴趣的:(c语言,websocket)