2012-05-23 23 views
7

TBB'yi kaynaktan nasıl yükleyeceğimi ve Linux sistemi üzerinde çalışmayı öğrenmek istiyorum. Kullanırken bazı sorunlar yaşadım, TBB'yi paket yöneticisi üzerinden yüklediğimde görünmeyen sorunlar. TBB web sayfası olarak Linux'taki kaynaktan TBB nasıl yüklenir ve çalışır hale getirilir

, LD_LIBRARY_PATH ve CPATH değişkenleri ayarlayarak veya tbbvars.sh dosyasını kaynak gibi bu nasıl yapılacağı hakkında bazı kurallar vardır. Bunu yapsam bile, bir örnek derlemeye çalıştığımda g ++, tbb bulunamadı.

Soru şu ki, TBB'yi kullanmak için her şeyi nasıl kuracağınız (kaynak kodu derleyeceğim, hangi değişkenleri ayarlamam gerektiğini ...) kolay bir yol buysa.

Teşekkürler.

NOT: Bu soru sorulduğunda kitaplık sürüm numarası 2 (doğru hatırlıyorsam). Çözümü 4.1 sürümüne kadar şahsen test ettim, ancak yapı metodu aynı kaldığı için mevcut versiyon 4.2 (update 3) için de çalışmalı.

+2

Zaten ne denedin mi

yerine make yazarak, türü [teşekkürler bilgi için rwols için]? TBB için herhangi bir belge var mı? Ve en önemlisi: ** ** TBB nedir? Daha spesifik olabilir misin? – Gnosophilon

+3

@Gnosophilon Farenizi etiketin üzerine getirip TBB'nin – inf

+0

./configure olduğunu öğrenebilirsiniz; Yapmak; sudo make install –

cevap

15

Çözüme geldim. Burada yayınlayacağım, bu konuda başkalarına yardımcı olacak.

1) en son kararlı kaynak kodunu indirin ve ~/tbbsrc

2) İçinde tip makyajda da yani, sıkıştırmayı. Tbb kütüphanesi ve bellek ayırıcılarını derlemeye başlamalıdır.

3) başlıkları iki yeni klasörler, yayın sürümü için bir ve ayıklama sürümü için diğer olacaktır ~/tbbsrc/şunlardır

4) İç ~/tbbsrc/yapı içindedir. Bu klasörler "architecture_ldVersion_g ++ Version_kernelVersion" gibi adlandırılır.

5) gibi Bashrc dosyasında örneğin, bazı değişkenleri ayarlayarak tavsiye:

  1. TBB_INSTALL_DIR = $ HOME/tbbsrc
  2. TBB_INCLUDE = $ TBB_INSTALL_DIR/şunlardır
  3. TBB_LIBRARY_RELEASE = $ TBB_INSTALL_DIR/RELEASE_FOLDER/build
  4. TBB_LIBRARY_DEBUG = $ TBB_INSTALL_DIR// DEBUG_FOLDER inşa

6) salma sürümü ile, örneğin, derlemek için

// main.cpp 
#include "tbb/task_scheduler_init.h" 

int main(int argc, char* argv[]) { 
    // tbb::task_scheduler_init init(tbb::task_scheduler_init::automatic); 
    // implicit tbb::task_sheduler_init::automatic 
    tbb::task_scheduler_init init; 
    return 0; 
} 

7): Basit bir örnek yapalım

g++ main.cpp -I$TBB_INCLUDE -Wl,-rpath,$TBB_LIBRARY_RELEASE -L$TBB_LIBRARY_RELEASE -ltbb 

-Wl,-rpath,$TBB_LIBRARY_RELEASE biz

libtbb.so bulmak için dinamik bağlayıcı anlatıyorsun ile

8) Ve ​​bu iyi çalışmalı!

Saygılarımızla!

Apple clang 5 yüklemesi.1:make compiler=clang veya make compiler=clang stdlib=libc++

+0

Peki -rpath seçeneği g ++ tarafından tanınmıyor ... bu bir ld seçeneğidir ... – Andry

+1

Evet. Bu yüzden bunu -Wl ile iletmeniz gerekiyor, bu yüzden bağlayıcı "tanıyın". Bu hem Ubuntu'da hem de Windows'da "g ++ 4.4" ve "g ++ 4.7" ile test edildi. Daha yeni sürümlerle test etmedim. –

+0

ama -W1, sadece uyarı için bilgi sağlıyor mu? Ben bu seçeneği yazmadım ben merak ediyorum ... :) – Andry

İlgili konular