6

我有这个makefile

libjackpot.a: jackport.o jackpot.o
    ar -rcs jackport.o jackpot.o

jackpot.o: jackpot.cpp jackpot.h
    g++ jackpot.cpp -std=c++11 -O2 -c

jackport.o: jackport.cpp jackpot.h jackport.h
    g++ jackport.cpp -std=c++11 -O2 -c

不知何故(在我的 Linux 机器上),我得到了

ar: jackport.o: File format not recognized

ar --help 给出

ar: supported targets: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big plugin srec symbolsrec verilog tekhex binary ihex

文件 jackport.o

jackport.o: ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped
4

1 回答 1

11

您需要为 ar 指定库名称,例如:

   ar -rcs libjackpot.a jackport.o jackpot.o
于 2013-09-12T14:40:30.123 回答