3
已解决
薛乘志
初级启示者
初级启示者
尝试使用我的编译器编译压缩包里的程序,出现了一大堆问题(而且很多都是查看源码才发现的):
1. 无法静态编译:libcdt没有静态库,这就意味着如果要在其他电脑上运行必须带上libgcc_s_seh-1.dll libstdc++-6.dll 等等一大堆dll文件,极为笨重(动态库的大小远远超过静态链接)
2. 代码不规范:导致代码和c++标准强绑定,只兼容c++11和c++14,不支持c++17和c++20等更新的标准(理论上c++标准向下兼容),比如我用的编译器默认就无法通过编译
3. 二进制边界使用STL:这是最重要的,二进制边界使用STL是大忌!这导致代码和编译器强绑定,换一个编译器甚至同一个编译器不同编译选项都会出问题!我这里编译出的文件在运行时直接崩溃了
薛乘志在2023-02-11 20:57:58追加了内容
上述观点可能不够具体,下面是具体的例子:
在头文件里using namespace也真是个人才
二进制边界的string(string也是stl的一部分)
只有动态链接使用的库,不能静态链接
动态链接也就算了,倒是把dll带齐啊,libstdc++-6.dll不算dll是吧(压缩包里编译好的打不开)
另外我想这个字体重新发布应该是必须要带license的吧
薛乘志在2023-02-12 11:12:29追加了内容
@酷町侠 @酷丁 @酷町猫 @酷町扫地僧 希望解决
0
0
0
0
包涵宇
中级天翼
中级天翼
老老实实写,老老实实用也很香啊,其实可以不用codingtang的
小提示:playsound等要加编译选项(详见我的贴:一个好用的小东西)
0