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
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
Oblicz SHA-512 z polecenia i przekaż do mingw. Podobno daje sobie radę ;)
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
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
na tej drugiej jest ok, tylko że bez pierwszej linii bo ona zbędna, ale nie mam możliwości wyedytowania.
Ok, znalazłem. Tak można połączyć.
ld -r -o zbior.o plik.o plik2.o ...