无法创建简单归档

Unable to create simple archive

本文关键字:简单 创建      更新时间:2023-10-16

我正在尝试使用以下makefile制作一个简单的存档:

INC    :=-Ilibs/rapidxml-1.13
all: 
  $(CXX) -c $(INC) -o dove.o dove.hpp
  ar rvs libdove.a dove.o  
  ranlib libdove.a         
clean:
  rm -f dove.o libdove.a

dove.hpp文件有#include "rapidxml.hpp",您可以看到我在编译时指向了一个特定的rapidxml。make all目标运行完成,但1)输出鸽子。当rapidxml+dove.hpp只有150K的时候,它是巨大的(19MB!), 2)最后的libdove. hpp都不是。A或鸽子。它们似乎是可用的对象:

[hamiltont@4 dove]$ nm dove.o 
nm: dove.o: File format not recognized
[hamiltont@4 dove]$ nm libdove.a 
nm: dove.o: File format not recognized
[... in other project...]
[hamiltont@4 dove]$ g++ -o bin/AntHybrid build/*.o -L/home/hamiltont/foobar/dove -ldove
/home/hamiltont/foobar/dove/libdove.a: could not read symbols: Archive has no index; run ranlib to add one
collect2: ld returned 1 exit status

啊,明显的错误。我试图编译一个头文件,然后将其打包为一个库。虽然可以预编译头文件,但是在这个目录

中根本不需要makefile。