İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

include_server - Bulutta çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında include_server çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen include_server komutudur.

Program:

ADI


include_server.py - C/C++ için içerme bağımlılıklarının muhafazakar yaklaşımı

SİNOPSİS


içerme_sunucusu --Liman INCLUDE_SERVER_PORT [SEÇENEKLER]

TANIM


include_server.py bir dahil etme sunucusu sürecini başlatır. Bu süreç, sorguları yanıtlar
bölge(1) istemciler, C/C++ derlemelerine hangi dosyaların dahil edileceği hakkında. include_server.py
komutun kendisi, içerme sunucusu oluşturulduğu anda sona erer.

INCLUDE_SERVER_PORT bağımsız değişkeni, tüm iletişim için kullanılan bir soketin adıdır.
distcc istemcileri ve içerme sunucusu arasında. NS distcc-pompa(1) komut sorumludur
soket konumunu oluşturmak, bu komut dosyasına geçirmek ve herkese iletmek için
INCLUDE_SERVER_PORT adlı ortam değişkeni aracılığıyla distcc istemcileri.

Dahil etme sunucusu tarafından kullanılan protokol, distcc'nin RPC uygulamasını kullanır. Her discc
istek (1) geçerli dizinden ve (2) bağımsız değişkenlerin listesinden oluşur.
derleme komutu.

Dahil etme sunucusu isteği işleyebiliyorsa, distcc istemcisini şu şekilde yanıtlar:
dosya yollarının bir listesini gönderme. Dosya yolları, sıkıştırılmış kaynak ve başlığınkilerdir.
Dosyaları içerme analizi yoluyla derleme için gerekli olduğu bulundu. Liste ayrıca
derleme sunucusu için gerekli olan sembolik bağları ve hatta sahte dosyaları içerir.
Derleme için gereken dosya sisteminin parçalarının doğru bir kopyasını oluşturun. İçinde
bu şekilde, /path/foo.h gibi gerekli bir başlık dosyası sıkıştırılır, yeniden adlandırılır ve bir
/dev/shm/tmpiAvfGv.include_server-9368-1/path/foo.h.lzo gibi geçici konum. NS
distcc istemcisi bu dosyaları bir derleme sunucusuna aktaracak ve burada olacakları
sıkıştırılmamış ve geçici olarak monte edilmiştir.

Dahil etme sunucusu isteği işleyemezse, boş listeyi döndürür.
distcc istemcisine.

Dahil etme sunucusuyla ilgili iki tür hata vardır. Dahil etme sunucusu
içermeleri hesaplayamama veya başka şekillerde başarısız olma, bölüme bakın DAHİL SUNUCU Belirtiler.
Ayrıca, kaldırma sunucusundaki derleme, hesaplanan yetersizlik nedeniyle başarısız olabilir.
kapatmayı dahil et, ancak yerel olarak yeniden denendiğinde başarılı ol, bkz. MERKEZ ANLAŞMAZLIK
Belirtiler.

SEÇENEK ÖZET


Aşağıdaki seçenekler include_server.py tarafından anlaşılır.

-dPAT, --debug_pattern=PAT
Uyarıları açmak ve hata ayıklamak için bit vektörü
1 = uyarılar
2 = bazı işlevleri izle
ikinin diğer güçleri: bkz. include_server/basics.py.

, -e --e-posta
'distcc-pump-errors' adresine veya tanımlanmışsa ortam değişkeninin değerine e-posta gönderin
DISTCC_EMAILLOG_WHOM_TO_BLAME, dahil etme sunucusunun başı belaya girdiğinde. Varsayılan
e-posta göndermemek için.

--email_bound NUMBER
Gönderilecek maksimum e-posta sayısı (son bir e-postaya ek olarak). Varsayılan: 3.

--Email yok
E-posta göndermeyin. Bu varsayılandır.

--path_observation_re=YENİ
Bir dosya adı eşleşen bir gerçek yola çözümlendiğinde uyarı mesajı yayınlayın
Python sözdiziminde normal bir ifade olan RE tarafından. Bu bulmak için yararlıdır
dahil edilen dosyaların gerçekte nereden geldiği dışarı. Hepsini bulmak için RE="" kullanın. Not:
uyarılar en az -d1 ile etkinleştirilmelidir.

--pid_file DOSYA YOLU
Dahil etme sunucusunun pid'i FILEPATH dosyasına yazılır. Bu, bir komut dosyasına izin verir
böyle bir distcc-pompa dahil etme sunucusunu yıkmak için.

-Evet, --İstatistik
Dahil etme analizi hakkında bilgileri stdout'a yazdırın.

--stat_reset_triggers=LİSTE
Flush stat, LIST içindeki herhangi bir dosya yolunun zaman damgası değiştiğinde veya
filepath var olur veya yok olur. LIST, iki nokta üst üste ayrılmış bir dizedir
muhtemelen basit küreler içeren dosya yolları (Python'un glob modülünün izin verdiği şekilde).
Böyle bir değişiklik olduğunda (uyarılar etkinleştirilmişse) bir uyarı yazdırın. Bu
seçeneği, distcc-pump'ın kaynak olduğu varsayımına sınırlı istisnalara izin verir.
dosyalar oluşturma sırasında değiştirilmez.

-T, --zaman
Geçen, kullanıcı ve sistem zamanını stderr'ye yazdırın.

--unsafe_absolute_includes
Mutlak dosya yolları içerse bile derleme sunucusunda ön işleme yapın
karşılaşılır. Normalde dahil etme sunucusu yerel ön işlemeye geri döner
herhangi bir mutlak içerir tespit ederse. Bu nedenle, bu bayrak bu tür önlemek için yararlıdır
mutlak içerme yanlış alarm olduğunda, ya mutlak
include ön işleme sırasında veya kesinlikle dahil edilen dosya nedeniyle atılır
derleme sunucularında bulunur.

Daha kesin olarak, --unsafe_absolute_includes ile mutlak içermeler için yok sayılır
toplama amaçları dahil kapatma. Bu seçeneğin kullanılması şunlara yol açabilir:
yanlış sonuçlar çünkü (1) başlık aslında
derleme sunucusu ve istemcideki ile aynı olmayabilir, (2) dahil
başlığın direktifleri daha fazla analiz edilmez.

Bu seçenek, bu tür sabit kodlanmış mutlak konumlara sahip kodu derlemek için kullanışlıdır.
oluşturan koşullu yönergeler (örneğin "#ifdef") içindeki başlık dosyalarının
alakasız içerir. Daha doğrusu, bu içermeler sırasında ortadan kaldırılmalıdır.
gerçek yapılandırma için ön işleme. O halde varlığın sorusu
başlık dosyası tartışmalı ve uzaktan derleme sağlam. Bu genellikle böyleyse
bu tür içerikler, gerçek olandan farklı olağandışı konfigürasyonlar içindir.
konfigürasyonu.

-içinde, --Doğrulayın
CPP kapanışındaki dosyaların, include ile hesaplanan kapanışta yer aldığını doğrulayın.
işlemci.

-w, --write_include_close
Dahil edilen tarafından hesaplanan tüm dahil edilen dosyaları listeleyen bir .d_about dosyası yazın.
sunucu; -x ile, ek olarak dahil edilen dosyaları CPP tarafından hesaplandığı şekilde bir
.d_exact dosyası.

-X, --kesin_analiz
Bunun yerine CPP'yi kullanın, sistem başlık dosyalarını atlamayın.

DAHİL SUNUCU Belirtiler VE KONULAR


Dahil etme işlemcisinden gelmesi en olası mesaj ve uyarılar aşağıda listelenmiştir.

Ön İşleme Yerel olarak. Dahil sunucu değil kaplama: yapamadım belirlemek varsayılan sistem
dahil dizinleri
Varsayılan sistem başlık dizinlerini belirlemek için, içerme sunucusu aşağıdakileri çalıştırır:
derleyici, oturumu sırasında ihtiyaç duyulan her dil için bir kez. Bu mesaj şunu gösterir:
distcc için belirtilen derleyicinin istemcide bulunmadığını.

Ön İşleme Yerel olarak. Dahil sunucu değil kaplama: kefalet dışarı Çünkü dahil sunucu
harcanmış Daha göre ...S kullanıcı zaman idare talep
Nadir durumlarda, içerme sunucusu çok karmaşık makroları analiz edemez
ifade. distcc istemcisi düz distcc modunu kullanacaktır.

Uyarı: Dosya yolu şart be bağıl fakat değil
Dahil etme sunucusu, aşağıdakiler gibi mutlak dosya yollarını kabul etmez:
/usr/include/stdio.h, içerme yönergeleri içindedir, çünkü
derleme sunucusu makinesindeki bu başlık, derleme sunucusundaki ile aynı olacaktır.
müşteri. Dahil etme sunucusu, içerme kapatmasını analiz etmekten vazgeçer. Distcc
istemci pompa modunu kullanamaz.

Bu sorunun her zaman güvenilir olmayan bir şekilde üstesinden gelmek için ortam değişkenini ayarlayın.
INCLUDE_SERVER_ARGS='--unsafe_absolute_includes' distcc-pompasını çağırırken
--unsafe_absolute_includes seçeneğini dahil etme sunucusuna iletmek için komut dosyası.

Uyarı: kesin dosya yolu ... oldu GÖZDEN GEÇİRİLMİŞ
--unsafe_absolute_includes kullanımda. Bu durum aynı şartlar altında gerçekleşir.
"Filepath göreceli olmalı ama değil" verildiğinde olduğu gibi durumlar, ancak bu
içerme durumunda, distcc istemcisine bir cevap sağlayacaktır.

Uyarı: Yol '/YOL/DOSYA' değişti/geldi içine varlık/hayır uzun var
Bu uyarılar, durum sıfırlama tetikleyicileri kullanıldığında verilir. Çünkü /YOL/DOSYA
değiştirildiğinde, içerme sunucusu önbelleklerini temizler; dosyanın yeni sürümü (veya
olmaması) içerme analizini geçersiz kılar. Bu mesaj genellikle
görmezden gelindi; derleme sistemi tarafından dosyaların biraz tehlikeli bir şekilde kullanıldığını gösterir.
Dosyaların yeniden yazılmaması için derleme sistemini düzeltmeniz önerilir.

Uyarı: İçin çeviri birim ..., arama of dosya ... çözüldü için ... kimin gerçek yol is
...
Bu uyarı --path_observation_re ile yeni bir gerçek yol bir
kaynak veya başlık dosyası gözlenir.

MERKEZ ANLAŞMAZLIK Belirtiler


Derleme sistemi, distcc ve içerme sunucusu arasındaki etkileşimler biraz
karmaşık. Bir distcc komutu, uzak sunucudan başarısız bir derleme aldığında,
derlemeyi yerel olarak yeniden dener. Bu bölüm tutarsızlıkların nedenlerini tartışır
uzak ve yerel derleme arasında. Bunlar, indirgeme mesajıyla işaretlenir:

__________Uyarı: ... pompa modu derleme(ler) başarısız on sunucu, fakat başarılı Yerel olarak.
__________Distcc-pompa oldu demoted için sade modu. Yerimizi the Discc tutarsızlık Belirtileri
Bölüm in the içerme_sunucusu(1) adam gidin.

distcc-pump betiği bu mesajı derlemenin sonunda yayınlar. Bunun anlamı şudur:
en az bir distcc çağrısı, uzak derlemeden sonra yerel bir derleme başarılı oldu
arızalı. Bu tür bir tutarsızlığın meydana geldiği her distcc çağrısı aynı zamanda bir
mesaj gibi:

Uyarı: uzak derleme of '...' başarısız oldu, yeniden denendi lokal olarak ve var a farklı sonuç.

İndirgeme, sonraki distcc çağrılarının düz distcc modunu kullanmasını sağlar. Böylece
derlemenin geri kalanı için yerel makinede ön işleme yapılacaktır. Bu
teknik, tüm derlemelerin yerel makinede sona erdiği çok yavaş derlemeleri önler
uzaktan başarısız olduktan sonra.

Tabii ki, uzak arızalardan sonra yerel derlemeler başarısız olursa, o zaman distcc
çağırma, yerel derlemenin sıfır olmayan durumuyla çıkar. hata mesajları
basılanlar aynı zamanda yerel derlemeninkilerdir.

Distcc-pump modu için yerel derlemeye geri dönüş davranışı, ayarlanarak devre dışı bırakılabilir.
DISTCC_FALLBACK ortam değişkeni, distcc komutunun en kısa sürede başarısız olmasına neden olur
uzaktan derleme başarısız olduğu için. Bu ayar, neden hata ayıklamak için çok kullanışlıdır.
uzak derleme yanlış gitti, çünkü şimdi sunucudan gelen çıktı yazdırılacak.

Ardından, tutarsızlıkların olası nedenlerini tartışacağız.

The kullanıcı değişmiş a kaynak or başlık dosya sırasında the inşa etmek.
Bu elbette tutarsız sonuçlar verir.

A kaynak or başlık dosya değişmiş sırasında the inşa etmek.
Derleme sistemi bir dosyayı yeniden yazar. Linux çekirdeği 2.6 için bu,
'include/linux/compile.h' ve 'include/asm/asm-offsets.h'. Bu durum sabit
içerme sunucusuna, herhangi bir durum olduğunda önbelleklerini sıfırlaması gerektiğini bildirerek
dosya değişiklikleri. Pratik olarak bu, dosyaları bir kolonda toplayarak yapılır.
ayrılmış liste ve ardından INCLUDE_SERVER_ARGS komutunu şu şekilde ayarlayın:

include_server_args="--stat_reset_triggers=include/linux/compile.h:include/asm/asm-
ofsetler.h"

A başlık dosya is potansiyel dahil, fakat yok değil mevcut, ve is sonra sonra dahildir.

Bu, bazı foo.h üstbilgisi trick.h başka bir üstbilgi dosyası içerdiğinde oluşur, ancak
trick.h dosyası henüz oluşturulmadı ve ekleme aslında yok sayıldı
ön işleme yönergeleri nedeniyle. Dahil etme sunucusu,
trick.h'nin varlığı, çünkü tüm olası yol yönergelerine fazla yaklaşır
aslında değerlendirmek. trick.h dosyasının mevcut olmadığı belirlendi. daha sonra ise
oluşturulur ve ardından gerçekten dahil edilirse, içerme sunucusu yanlış bir şekilde inanacaktır.
dosyanın hala mevcut olmadığını söylüyor. Bu sorunun çözümü,
yapı sistemi, herhangi bir başlık dosyası ilk kez eklenmeden önce trick.h oluşturur
bu, trick.h'ye sözdizimsel bir başvuru yapar

The dahil sunucu oldu başladı ile --unsafe_absolute_includes.
Yerel olarak uzaktan var olmayan başlık dosyaları varsa bu bir sorundur ve
aslında kullanılanlar. Bu tür içerikler genellikle koşullu olarak korunur
gerçekten sadece belirli ve sıklıkla kullanılan yönergeleri değerlendiren direktifler
alışılmadık platformlar Böyle bir platform için derleme yapmıyorsanız,
kullanımı doğru --unsafe_absolute_include.

The dahil sunucu vardır hesaplanmış the yanlış içerir.
Böyle bir durumdan haberimiz yok.

EXIT KODLARI


include_server.py dosyasının çıkış kodu genellikle 0'dır. Dahil etme sunucusunun başlatıldığını
pid_file varlığı aracılığıyla düzgün bir şekilde iletilir.

ÇEVRE DEĞİŞKENLER


DISTCC_EMAILLOG_WHOM_TO_BLAME Sunucuyu otomatik olarak dahil etmek için kullanılacak e-posta adresi
e-postalar. Varsayılan, 'distcc-pump-errors' (muhtemelen bir e-posta adresidir)
alan adınızda mevcut değil).

Ek olarak, derleyicinin çağrılması ek ortam değişkenleri kullanabilir.

onworks.net hizmetlerini kullanarak include_server'ı çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Phaser
    Phaser
    Phaser hızlı, ücretsiz ve eğlenceli bir açık
    sunan kaynak HTML5 oyun çerçevesi
    WebGL ve Canvas oluşturma
    masaüstü ve mobil web tarayıcıları. Oyunlar
    ortak olabilir...
    Phaser'ı indirin
  • 2
    VASAL Motor
    VASAL Motor
    VASSAL, oluşturmak için bir oyun motorudur.
    geleneksel tahtanın elektronik versiyonları
    ve kart oyunları. için destek sağlar
    oyun parçası oluşturma ve etkileşim,
    ve ...
    VASSAL Motorunu İndirin
  • 3
    OpenPDF - iText çatalı
    OpenPDF - iText çatalı
    OpenPDF oluşturmak için bir Java kütüphanesidir.
    ve PDF dosyalarını bir LGPL ile düzenlemek ve
    MPL açık kaynak lisansı. OpenPDF
    LGPL/MPL iText'in açık kaynaklı halefi,
    var ...
    OpenPDF'i İndirin - iText Çatalı
  • 4
    SAGA CBS
    SAGA CBS
    SAGA - Otomatik Sistem
    Yerbilimsel Analizler - Bir Coğrafidir
    Bilgi Sistemi (GIS) yazılımı ile
    coğrafi veriler için muazzam yetenekler
    işleme ve ana...
    SAGA GIS'i indirin
  • 5
    Java/JTOpen için Araç Kutusu
    Java/JTOpen için Araç Kutusu
    IBM Toolbox for Java / JTOpen, bir
    destekleyen Java sınıfları kütüphanesi
    istemci/sunucu ve internet programlama
    modelleri OS/400 çalıştıran bir sisteme,
    i5/OS veya...
    Java/JTOpen için Toolbox'ı indirin
  • 6
    d3.js
    d3.js
    D3.js (veya Veriye Dayalı Belgeler için D3)
    sağlayan bir JavaScript kitaplığıdır.
    dinamik, etkileşimli veriler üretmek için
    web tarayıcılarında görselleştirmeler. D3 ile
    sen...
    D3.js'yi indirin
  • Daha fazla »

Linux komutları

Ad