不到2M的Tiny C Compler(TCC)原来也可以用作Compile的编译器啊
mathematica吧
全部回复
仅看楼主
吧务
level 15
xzcyr 楼主
不知编译为何的同学先看这里:
note.youdao.com/share/?id=bf2a031f7d0d69064941032c7857dfd1&type=note#/
这是我前两天灵光一闪意识到的:既然配置GCC的时候,用的是GenericCCompiler选项——这选项里有个Generic啊,那说不定,其他的编译器也能用这个方法配置?于是仔细读了读帮助又试了试,发现还真是这样。总之这里给出配置方法。
TCC的配置方法与GCC几乎是一样的,这里依旧以64位Windows为例。
首先把TCC下载下来。官网地址:download.savannah.gnu.org/releases/tinycc/ (目前Win64位下的最新版是tcc-0.9.27-win64-bin.zip。)
然后,解压到任意路径。(我这里为了便于说明,就放在C盘根目录了。不排除在某些特殊路径下会出现BUG。)
最后,我们在Mathematica里执行
SystemOpen@"init.m"
打开配置文件,再在其中写入
<< CCompilerDriver`GenericCCompiler`
$CCompiler = {"Compiler" -> GenericCCompiler,"CompilerInstallation" -> "C:\\tcc","CompilerName" -> "tcc.exe"};
并保存。(再次强调,注意安装路径"CompilerInstallation"需要改成你的安装路径,并且这个路径不能有空格。此外,这次我没有设"SystemCompileOptions"选项,因为TCC似乎没有优化相关的选项可设。)
然后就可以愉快地编译了。
……不过,实践之后发现,TCC的性能相较于GCC似乎并不好,应该是为了编译快而放弃了优化。不过总的来说还是挺好玩的,大家可以玩一玩。
顺便,有谁装了微软家的编译器的话,可以试试上面的方法行不行。
2018年10月05日 18点10分 1
吧务
level 13
用windows时, 一度以为GenericCCompiler是gcc的全称
2018年10月06日 10点10分 3
吧务
level 9
Clang(clang.llvm.org)也值得一试,编译参数兼容GCC,一般情况和GCC差不多,有时候比GCC快得多。
zhihu.com/question/37358109
mathematica.stackexchange.com/q/50839/2090
这两个链接里的例子如果把编译器换成Clang,速度大致是GCC的2-4倍,据我推测可能是Clang有时会自动并行,因为用LibraryLink和openmp并行的C代码GCC也可以达到差不多的速度,但Clang加速不明显了。
配置编译器时有个小坑,默认安装在Program Files文件夹,指定CompilerInstallation时最好用PROGRA~1代替,不然可能出现乱码问题
2021年06月16日 05点06分 4
说到《Smooth Peter de Jong attractor》这帖,我一直觉得那个C解法的 #pragma omp parallel 挺诡异的,因为那个算法明明是高度顺序化的,为什么能并行?
2021年10月02日 04点10分
……LLVM 18.1.8 无法被 Mathematica 识别,原因暂不明。
2025年02月01日 04点02分
@xzcyr 好像需要安装VS,stackoverflow.com/q/68045039/1665184。通过msys2安装的应该没有问题
2025年02月10日 11点02分
1