2016-04-05 23 views
1

Igl kitaplığını C++ uygulamasında 3d olarak kullanmaya başladım. Eğiticiyi takip ettiğim sırada bir hata oluştu. Temel olarak sadece bir OFF dosyasını okuyan ilk örnek, iyi çalışıyor. Ama igl :: viewer kullanarak ikinci değil. İşte kod:Igl hatası: mimari için tanımsız semboller x86_64

#include <igl/readOFF.h> 
#include <igl/viewer/Viewer.h> 

Eigen::MatrixXd V; 
Eigen::MatrixXi F; 

int main(int argc, char *argv[]) 
{ 
    // Load a mesh in OFF format 
    igl::readOFF("/bunny.off", V, F); 

    // Plot the mesh 
    igl::viewer::Viewer viewer; 
    viewer.data.set_mesh(V, F); 
    viewer.launch(); 
} 

ve ben sadece terminal girin:

path_to_libraries benim kütüphaneleri (IGL, öz, GLFW) kaldığı kişisel klasör
g++ -std=c++11 -I path_to_librairies/eigen-eigen-07105f7124f9/ -I path_to_librairies/libigl/include/ -I path_to_libraries/glfw-3.1.2/include/ main.cpp -o Test 

. gibi hataların

Ve Terminal döner onlarca:

Undefined symbols for architecture x86_64: 
    "_glActiveTexture", referenced from: 
     igl::viewer::OpenGL_state::bind_mesh() in main-805320.o 

Ben de Eigen ve GLFW indirilen. Tüm yaptığım glfw kaynak klasöründe bir cmake.

Sonuç olarak, Xcode ile denediğimde, projeye OpenGL (internette bulduğum bir şey) çerçevesinin eklenmesi hataların yarısını (igl :: viewer :: OpenGL ile ilgili olanı) kaldırıyor ancak bazılarını eklemeliyim igl :: viewer :: Görüntüleyenler kalır.

Herhangi bir ipucu olan var mı?

+0

OpenGL kitaplığı ile bağlantı oluşturmuyor musunuz? Bunun OSX'de nasıl yapıldığını bilmiyorum (daha çok linux/windows kinda adam) ama başlayacağım yer burası. İyi şanslar – Andreas

cevap

2

Büyük olasılıkla sorununuzu çözecektir

-lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo 

ekleyerek GLFW's docs göre, OS X'in çerçeveler birkaç bağlantısını gerekir.

+0

Teşekkürler yardımcı oldu! Bu türden 76 hata vardı, şimdi 26. Geri kalanlar igl :: viewer :: Viewer :: launch_something() gibi konuyla ilgili: Mimari için tanımlanmamış semboller x86_64: "_glfwCreateWindow", başvurulan: igl: : viewer :: Viewer :: launch_init (bool, bool) main.o içinde –

+0

Artık GLFW kütüphanesinin kendisini bağlamazsınız. Bağladığım dokümanlara bakın ve GLFW'yi bağlamak için bayrağı -lglfw ifadesine ekleyin. Ayrıca, kütüphaneyi bulmak için derleyiciye söylemek için bir '-L 'bayrağı eklemeniz gerekir. – Leandros

+0

Tamam harika, nihayet işe yarıyor! (Ayrıca, ilk yapmamış olduğum make'den sonra glfw'ı da yüklemek zorunda kaldım). Çok teşekkür ederim. –