Şu anda Windows ile ana işletim sistemi olarak çapraz derleme için SCons kuruyorum. Çapraz derleyici için özel bir Environment
yapıyorum, ancak SCons her başlattığımda Visual Studio'yu aramakta ısrar ediyor (ve bunu bulamadığım için bir uyarı yazıyor, çünkü yüklü değil). Kullanmayacağımı bildiğim standart araçları aramasını engelleyebilir miyim?SCON'ları standart araçlar aramasını önleme
cevap
bunu yapmak için en az 2 yolu vardır, ilk yolu en kolay, aşağıdaki gibi, derleyici belirterek ortamı oluşturmayı deneyin:
env = Environment(CC = '/path/to/the/compiler')
Muhtemelen yollarını eklemeniz gerekir linker ve diğer araçlar da. Sonra SCons onları aramamalı.
aşağıdaki SCons man page ait YAPILANDIRMA DOSYASI REFERANS bölümünde belirtildiği gibi Environment()
işlevi tools
bağımsız değişken ile çapraz derleyici için bir araç tanımlama oluşturmak olacaktır yapmanın bir başka yolu söz edilir:
, isteğe bağlı bir anahtar değişken olarak belirtilebilir ortamı başlatmak için hangi araçlar belirli bir grubu:
env = Environment(tools = ['msvc', 'lex'])
Ayrıca kendileri iki eleman listeleri olabilir
env = Environment(tools = ['default', 'foo'], toolpath = ['tools'])
... araçlar listesinin
bireysel elemanlar:
Olmayan yerleşik araçlar takım yolu argümanı kullanarak belirtilebilir formun (toolname, kw_dict). SCons, için yukarıda açıklandığı gibi araç adı belirtim dosyasını arar ve aracının üretme işlevine bir anahtar kelime argümanı olarak bir sözlük olması gereken kw_dict değerini geçirir. Oluşturma işlevi, aracın davranışını ortamını farklı yollarla ayarlayarak ya da başka şekilde başlatmayı değiştirerek argümanlarını kullanabilir.
araçları/my_tool.py:
def generate(env, **kw):
# Sets MY_TOOL to the value of keyword argument 'arg1' or 1.
env['MY_TOOL'] = kw.get('arg1', '1')
def exists(env):
return 1
SConstruct: Bu
env.SetOption('warn', 'no-visual-c-missing')
gibi
env = Environment(tools = ['default', ('my_tool', {'arg1': 'abc'})],
toolpath=['tools'])
Sen baskılayabilir uyarılarÖrneğin, ARM Cortex-M mikroişlemcileri için çapraz derleme yapıyorum Bunu yapıyorum
cross = 'arm-none-eabi-'
toolchain = {
'CC': cross + 'gcc',
'CXX': cross + 'g++',
'AR': cross + 'ar',
'AS': cross + 'gcc',
'OBJCOPY': cross + 'objcopy',
'SIZE': cross + 'size',
'PROGSUFFIX': '.elf',
}
env = Environment(tools=('gcc', 'g++', 'gnulink', 'ar', 'as'), ENV=os.environ)
env.SetOption('warn', 'no-visual-c-missing')
env.Replace(**toolchain)
DefaultEnvironment (tools = []) eklerseniz, her oluşturulan Ortam() için araçların açık bir şekilde listelendiğini ve listelerin msvc, msvs vb. Içermediğini varsayarak uyarıyı bastırmanız gerekmemelidir. – bdbaddog
- 1. NPI aramasını nasıl birleştirebilirim?
- 2. gerekli araçlar?
- 3. AnimatedVectorDrawable oluşturmak için araçlar
- 4. Öğreticilerin programlanması için araçlar?
- 5. require.js - geri aramasını ben şu var
- 6. PostgreSql işlevleri aracılığıyla 'grep-alike' aramasını yapın
- 7. Verileri değiştir ajax aramasını kullanarak sütunları girin
- 8. Django, sorguyu ve yabancı anahtar aramasını görüntülüyor
- 9. MediaWiki'de AJAX aramasını yapılandırmak/geliştirmek mümkün mü?
- 10. Telefonun tıklatmada numarayı aramasını engellemesi - Raylar, JavaScript
- 11. delphi ile F12 aramasını sağlayan klavye kancası
- 12. HTML5'te Kaydırmayı Önleme
- 13. Önleme isIstance deyimi
- 14. Mongoose'da yinelenen kayıtları önleme
- 15. Hazırda 4.0.0Final (keseni önleme)
- 16. WebView'in Tarayıcıyı Açmasını Önleme
- 17. Gephi'de Etiket Örtüsünü Önleme
- 18. Tepkiyi odaklamayı önleme
- 19. Scala'da SAXParseException'ı Önleme
- 20. Önleme Otomatik sıralamayı seç
- 21. window.open'in odaklanmasını önleme
- 22. Tamsayılarla otomatik kalıpları önleme
- 23. datagrid'de satır değişikliğini önleme
- 24. Task.ContinueWith İstisnasıyla Önleme
- 25. Dağınık tarayıcının ölümünü önleme
- 26. geçici nesnenin geçişini önleme
- 27. Edittext'in boş bırakılmasını önleme
- 28. Esnek kutunun daralmasını önleme
- 29. İleti Çoğaltmalarını Önleme
- 30. SQLite: Önleme yinelenen satırları
Bu mükemmel yanıt için teşekkür ederiz. İkinci yaklaşımla gidiyorum, ihtiyacım olana benziyor. –
@ BjörnPollex, yardımcı olmaktan mutluluk duyuyoruz :) – Brady
Bu çözüm maalesef uyarının problemini çözmedi.Buradaki problem, özel bir ortam yaratmamıza rağmen, 'DefaultEnvironment' hala varsayılan araçlarla başlatılmış olmasıdır. Bir DefaultEnvironment (tools = []) 'eklemek bunu düzeltdi. –