Я пытаюсь сделать простой архив с помощью следующего 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) выходной файл dove.o является массивным (19MB!), Когда rapidxml + dove.hpp составляет только около 150K, а 2) ни конечный файл libdove.a, ни dove.o не могут использоваться объектов:
[[email protected] dove]$ nm dove.o
nm: dove.o: File format not recognized
[[email protected] dove]$ nm libdove.a
nm: dove.o: File format not recognized
[... in other project...]
[[email protected] 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