Makefile - kompilacja

0

Witam.

Mam kilkanaście projektów typu 'makefile', wszystkie są umieszczone w jednym workspace w Microsoft Visual C++ 2005.
Do tej pory działałem na WinXP, procesor jednojajowy.
Aktualnie przesiadłem się na Win7 z prockiem czterojajowym.

No i pojawił się dziwny problem, kiedy kompiluje każdy z projektów osobno wszystko jest powiedzmy po staremu, tzn. po kompilacji otrzymuję to czego się spodziewałem.
Natomiast kiedy robię rebuild całego workspace dzieją się cuda, za każdym razem kompiluje się inna ilość projektów, nigdy wszystkie.
Macie jakieś sugestie jak to można rozwiązać?

Pozdrawiam.

0

Mogę się mylić - ale nie jest to kwestia zależności między projektami? Osobno da się je zbudować w dowolnej kolejności?

0

Nie ma tam żadnych zależności.
Podejrzewam że z racji czterordzeniowego proca odpalają się jakieś procesy równoległe i stąd całe zamieszanie.

0

Pytanie drugie - antywirus chodzi w tle? Jeśli tak - wyłącz go na czas kompilacji.

0

Antywirusa wstrzymałem w działaniu, brak poprawy.
Nie powiedziałem ważnej rzeczy - kiedy rusza kompilacja pierwszego projektu, z plików źródłowych tworzą się pliki *.obj
i nagle w konsoli widzę że jeszcze nie skończył się budować pierwszy projekt kiedy zaczynają się kompilować pliki z innego projektu.
Kompilacja innego projektu wcina się kiedy poprzedni jeszcze się nie zakończył.

0

Możesz wywołanie i log pokazać?

0

Solution Explorer, prawym na projekcie, Build Dependencies, Project Dependencies.
Poustawiaj zależności między projektami zgodnie z prawdą.

I znaj różnicę między "Build Solution" a "Rebuild Solution".
Build Solution kompiluje tylko to co trzeba (a skąd wie co trzeba? z tego które pliki się zmieniły i jakie są zależności między projektami - dlatego te ostatnie muszą być prawidłowo ustawione).
Rebuild Solution kompiluje wszystko (ale kolejność kompilacji projektów ustala na podstawie zależności, więc też muszą być poustawiane).

i nagle w konsoli widzę że jeszcze nie skończył się budować pierwszy projekt kiedy zaczynają się kompilować pliki z innego projektu.
Przy prawidłowo ustawionych zależnościach to w niczym nie przeszkadza, a przyspiesza kompilację.

0

W moim przypadku żadnych zależności nie mam ustawionych bo ich nie potrzebuję.
Wszystkie projekty są autonomiczne.
Jedyne co ustawiam to:

 
"Build Command Line"   [$(VARPATH)\bin\bmake.exe -s C:\Program\make.mke]
 
"Rebuild All Command Line"   [$(VARPATH)\bin\bmake.exe -a C:\Program\make.mke]

W ten sposób wywołuję zewnętrzny program bmake.exe, który na podstawie pliku make.mke buduje moją aplikację.
Tutaj nie doszukiwał bym się problemu skoro jak już napisałem, pod winXP wszystko ładnie działa.

Pozdrawiam.

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