首页  编辑  

开开心心玩TinyCC

Tags: /C_C++/   Date Created:
TinyCC(TCC)是目前最小巧轻快的C/C++编译器,编译出来的程序体积小巧。
TinyCC下载地址: https://download.savannah.gnu.org/releases/tinycc/
  1. 首先下载你需要的版本,例如 tcc-0.9.27-win32-bin.zip(用于编译32位),tcc-0.9.27-win64-bin.zip(用于编译64位),VS Code中有个TCC Compile/Run 插件,自带TCC编译器。
  2. winapi-full-for-0.9.27.zip是Windows API比较大而全的 include 头文件,你可以下载后用里面 include 文件夹覆盖 tcc 安装目录下的同名目录
  3. 去这里下载 https://files.1f0.de/mingw/ 对应的 lib 文件,TCC本身不带库文件,可以利用mingw的预编译的lib文件用来 Link,下载后解压到某个目录,然后用 tcc -L你的lib目录来 编译,例如:
    tcc -LD:/Tools/mingw/x86_64-w64-mingw32/lib32 demo.c
  4. 编译报错:
tcc: error: library 'ws2_32.lib' not found
tcc: error: library 'Iphlpapi.lib' not found
tcc: error: undefined symbol 'wsprintfA'
tcc: error: undefined symbol '_GetBestInterface@8'
tcc: error: undefined symbol '_GetIpAddrTable@12'
解决方法,使用 -l 指令指定对应函数所在的lib文件即可:
例如 
tcc s.c -lws2_32 -luser32 -liphlpapi

另外,需要注意的是,如果在代码中使用 #pragma 指令来指定 Link 的Library,记得不要加.lib后缀,例如下面是不行的,这点和Microsoft cl 指令不同:
#pragma comment(lib, "ws2_32.lib")  
必须用
#pragma comment(lib, "ws2_32")