我某天闲的蛋疼,突然想把discord tube改写成c++程序🤔和bash版本一样,c++也有curl库用,瞎鸡巴折腾了114514秒后,我终于搞对了mingw存放头文件和库文件的路径,将curl的玩意扔进去发现dll不兼容?🤔
我再一查,发现我用的mingw是64位的,编译的64位exe,但我扔进去的库是32位的🤔草,搞个64位库扔进去后,完美运行🤔
现在基本上只有一个问题了,目前编译出来的exe需要一个5MB大小的libcurl-x64.dll才能跑,但这倒不是什么大问题,毕竟现在又不是20年前,5MB还真不是什么大文件,cygwin全套至少也得半个GB(确信🤔
况且这5MB还集成了ssl库,discord tube没有https肯定是搞不成的🤔我估计要是加上ssl的话,静态链接下来exe也是MB大小的🤔
然后我尝试看了一眼c++多线程,好了,我可以放弃将discord tube改造成c++了(悲🤔
还是我去哪儿抄个作业?搜“c++多线程http”啥的🤔
bruh
我查了一大堆资料,甚至重新编译过libcurl,还是搞不定静态链接到一个exe这种问题,懒得折腾了🤔
另外我还发现了其他一些http库,但它们貌似需要特别的设置才能编译出win版的dll🤔总体来说需要c的高效特性的场合(比如做高并发webserver)基本上全用的linux,win这边除了iis外现在其实更倾向用py等脚本语言实现webserver🤔
thonk
而我这边写的discord tube严格点来说根本不算多线程,而是多进程,无论是每进行一次http请求就需要调用一次curl.exe,还是迫真多线程加的那个&符号,都是fork的意思🤔这样,也许有另外一种写c++程序的玩法,那就是用system命令来调用curl.exe等,实现上传文件等操作🤔至于那个被调用的程序向stdout输出的东西,我觉得c++肯定有办法获取它(确信🤔