Bunu yapmak için örtülü oluşturma kurallarını kullanarak bir grup statik kitaplık oluşturmak için GNU make kullanıyorum. Bu kurallar kütüphaneyi/arşivi güncellemek için ar (1) komutunu çalıştırır. Profil oluşturma, yapım sırasında paralel işleri yürütmek için -j seçeneğini kullanmış olsaydım, yapım süresinin azaltılacağını gösterdi.GNU yapımını paralel dosya yapıları için kullanırken eşzamanlılık sorunlarını nasıl önleyebilirim?
Maalesef GNU manuel hemen hemen yapmak ar (1), ve böylece can (ve) bozuk arşiv çalıştırmak için hiçbir eşzamanlılık korumaları sağladığını söyleyen bir bölüm http://www.gnu.org/software/make/manual/html_node/Archive-Pitfalls.html sahiptir olun. El kitabı ayrıca, bunun gelecekte de düzeltilebileceğini göstermektedir.
Bunun için bir çözüm, bir komutu çalıştırmadan önce temelde semafor kilitleme yapan http://code.google.com/p/ipcmd kullanmaktır, böylece arşi (1) arşive hazırlayan komutlar serileştirilir. Bu özel çözüm benim için iyi değil çünkü Windows'da mingw tabanlı çapraz derleme araçlarıyla yapıyorum.
Bu sorunun daha basit veya daha iyi bir çözümü var mı?
Sanırım arşivi değil, arşivi çalıştırmanız gerekiyor. Muhtemelen kurallardaki nesne dosyaları için $^kullanabilirsiniz. – user1143888