【问题标题】:Tiny C Compiler link my assembly object fileTiny C 编译器链接我的程序集目标文件
【发布时间】:2013-11-30 12:03:09
【问题描述】:

是否可以在 tcc 中链接使用 nasm 生成的 *.o 文件?

使用 gcc 对我来说效果很好:

nasm -f win32 -o fastmath.o fastmath.asm
gcc -o powerTest.exe powerTest.cpp cexport.o

当我使用 tcc 尝试相同的过程时,我收到以下错误:fastmath.o:1: error: unrecognized file

set name=test
set tccpath=C:\TCC\
set nasmpath=C:\NASM\

%nasmpath%nasm -f win32 -o fastmath.o fastmath.asm

%tccpath%tcc -c main.c
%tccpath%tcc -vv -luser32 -lgdi32 -lopengl32 -lglu32 -o %name%.exe main.o fastmath.o

我是不是忘记了编译选项中的某些内容?

【问题讨论】:

  • 可能tcc的输出文件格式和其他的不一样。您是否尝试将 tcc 生成的 *.o 文件与 gcc 中的程序链接?
  • 题外话,我强烈建议你使用repo.or.cz/w/tinycc.git 的最新版本,并确保你使用 mob 分支。 tcc 有非常罕见的版本(有时每隔几年一次),因此从更新中受益的唯一方法就是推出自己的版本。

标签: c assembly linker nasm tcc


【解决方案1】:

Tcc 不处理 -f win32。请改用 -f coff。

【讨论】:

  • @user3052010 你能用“-f elf”试试吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多