Jak połączyć wiele *.o

0

Mam bardzo wiele plików *.o i na jeden raz nie mogę ich zlinkować do jednego exe, bo mi przycina za długie polecenie. Można jakoś to obejść pośrednio łącząc trochę plików *.o w jeden?

Korzystam z MinGW

0

Oblicz SHA-512 z polecenia i przekaż do mingw. Podobno daje sobie radę ;)

http://stackoverflow.com/questions/2980102/combine-two-gcc-compiled-o-object-files-into-a-third-o-file

0

Jak mam to zrobić, bo nie za bardzo wiem w tym przypadku. A w tym linku co podesłałeś to sprawdziłem opcję -r, ona działa w takim sensie, że nie pokazuje błędu. Ale przy próbie potem linkowania do tak utworzonego *.o pokazało setki brakujący i duplikatów co jest niemożliwe, bo sprawdziłem to na tej części kodu, która się normalnie kompiluje i normalnie tworzy dll. A po operacji

g++ -r zbior.o lista.....plikow.....o
g++ -shared -o $dll.dll zbior.o $(LIBS) -Wl,--out-implib,libdll.a
0

A po operacji

g++ -r zbior.o lista.....plikow.....o
g++ -shared -o dll.dll zbior.o $(LIBS) -Wl,--out-implib,libdll.a

Daje setki błędów, podczas gdy na operacji:

g++ -r zbior.o lista.....plikow.....o
g++ -shared -o dll.dll lista.....plikow.....o $(LIBS) -Wl,--out-implib,libdll.a
0

na tej drugiej jest ok, tylko że bez pierwszej linii bo ona zbędna, ale nie mam możliwości wyedytowania.

0

Ok, znalazłem. Tak można połączyć.

ld -r -o zbior.o plik.o plik2.o ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1