Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fiber在windows上编译报的一些错 #341

Open
heheda123123 opened this issue Jun 21, 2024 · 1 comment
Open

fiber在windows上编译报的一些错 #341

heheda123123 opened this issue Jun 21, 2024 · 1 comment

Comments

@heheda123123
Copy link

heheda123123 commented Jun 21, 2024

看fiber库的描述是支持windows的
image
放开xmake.lua里面的限制
image
编译过程会遇到下面的一些错误
(下面有些错误是c++特有的,有些是msvc的强制安全要求,大佬比我懂,看情况修改哈。要么就把使用不安全函数的宏直接加到构建脚本里,要么用宏控制下,windows上就用那些安全函数)
处理了下面的错误之后编译即可通过(我本地都是注释或者赋值为0)

1 用了线程不安全的函数
编译会报错如下
image

lib_fiber\c\src\common\gettimeofday.c(144): error C2220: 以下警告被视为错误
lib_fiber\c\src\common\gettimeofday.c(144): warning C4996: '__timezone': This function or variable may be unsafe. Consider using _get_timezone instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
lib_fiber\c\src\common\gettimeofday.c(145): warning C4996: '__daylight': This function or variable may be unsafe. Consider using _get_daylight instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

应该是没有保证线程安全,需要换成后面的函数

2 dup可能被废弃了,用2022编译通不过
把上面两行注释了,继续编译,会出现下面的错误
image
可能是废弃了,得换成_dup?
image

3 看这里的报错,貌似是delete关键字重名了?
image

4 这里只有一个右大括号,是不是写漏了
image

5 这个文件,我用utf-8和gbk打开,注释都会乱码,字符编码应该是已经错乱了
image

6 如图,貌似是因为c++不支持默认int
image

7 这里类型得明确指定成char*
image

8 如下的文件同样存在被废弃的函数
image

9 如下的报错都要求明确void*转换的类型
image

10 如下报错显示要用msvc提供的安全函数
lib_fiber\c\src\dns\rfc1035.c
image

11 貌似是没有定义UNICODE宏,用了WSASocketA函数
不过这里也没字符串参数,分不分A或者W好像也没啥关系
image

12 这里第七个参数,是int指针,但是需要一个LPDWORD,在64位上LPDWORD是unsigned long指针
image

13 不安全的函数
image

14 一些不安全的函数
image

15 不安全函数
image

16 一些不安全函数
image

17 同样提示要明确转换void*
image

18 不安全函数
image

19 不安全函数
image

20 void*类型转换的问题
image

21 条件编译的用法好像有问题,不能用&&,得用两个嵌套
image

22 SOCKET句柄转int可能出问题
前面把dup改_dup的位置,话说这种SOCKET句柄传给dup的用法可以嘛,不确定?
image

23 不安全函数,可能溢出
image

24 void*类型转换的问题
image

25 void*类型转换的问题
image

This was referenced Jun 21, 2024
@Kanerudaisuki
Copy link

acl在windows上编译都是一遍过的,你直接用vs不要用xmake

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants