2012-03-16 24 views
1

ライブラリvcglib(http://vcg.sourceforge.net/index.php/Main_Page)の使い方を勉強しようとしていますが、コンパイル。今、私はtrimesh_definition.cppをコンパイルしようとしています。これは、すべてを起動して実行する方法を示すvcglibに付属している基本的な例です。ここでg ++でvcglibコードをコンパイルするのに助けが必要

は私がcomipleしようとしているコードです:

1 #include <vector> 
2 
3 #include <vcg/simplex/vertex/base.h> 
4 #include <vcg/simplex/vertex/component.h> 
5 #include <vcg/simplex/face/base.h> 
6 #include <vcg/simplex/face/component.h> 
7 
8 #include <vcg/complex/complex.h> 
9 
10 class MyEdge; 
11 class MyFace; 
12 
13 class MyVertex: public vcg::VertexSimp2<MyVertex,MyEdge,MyFace, vcg::vert::Coord3d, vcg::vert::Normal3f>{}; 
14 class MyFace: public vcg::FaceSimp2<MyVertex,MyEdge,MyFace, vcg::face::VertexRef>{}; 
15 
16 class MyMesh: public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> > {}; 
17 
18 int main() 
19 { 
20 MyMesh m; 
21 return 0; 
22 } 

私は、次のコマンドを使用してコードcomiplingよ:

trimesh_definition.cpp:13:40: error: expected template-name before ‘<’ token 
trimesh_definition.cpp:13:40: error: expected ‘{’ before ‘<’ token 
trimesh_definition.cpp:13:40: error: expected unqualified-id before ‘<’ token 
trimesh_definition.cpp:14:36: error: expected template-name before ‘<’ token 
trimesh_definition.cpp:14:36: error: expected ‘{’ before ‘<’ token 
trimesh_definition.cpp:14:36: error: expected unqualified-id before ‘<’ token 
In file included from trimesh_definition.cpp:8:0: 
/home/martin/Programming/Graphics/libraries/vcglib/vcg/complex/complex.h: In instantiation of ‘vcg::tri::TriMesh<std::vector<MyVertex>, std::vector<MyFace> >’: 
trimesh_definition.cpp:16:86: instantiated from here 
(... followed by many more screenfulls of template info) 

g++ -I ../../../vcglib trimesh_definition.cpp -o trimesh_def 

を私は次のエラーを取得します

テンプレートについてはあまりよく分かりませんので、問題の内容や修正方法についてはわかりません。これはvcglibのウェブサイトから直接ダウンロードしたコードです。これは上記のリンクですが、私はそれを変更していないので、コンパイルしないと驚いています。

ほとんどの例は、Windowsのコンピュータやビジュアルスタジオ向けです。私はarch linuxを実行しています。これをg ++でコンパイルしています。問題は2つのコンパイラの違いかもしれませんか?

私は本当に失われています、どんな助けも大歓迎です。

+1

サンプルディレクトリは '' qmake'を使用して構築するために使用され.pro'ファイルが含まれているように見える:

Tutorialはあなたの実際のソリューションを提供しています。 'qmake'をインストールして' qmake'を実行するだけで、サンプルをビルドするために使用できる 'Makefile'を生成することができます。また、 '.pro'からサンプルをビルドするのに必要なファイルを見ることができます。 @ipcによって指摘されているように、ビルドしているコードは古いです –

答えて

1

VertexSimp2(および1と3も)古いバージョンのvcgで使用されるクラスです。 Libを検索すると、class VertexSimp2の定義は見つかりません。

これはまさにコンパイラの言い分で、vcg::VertexSimp2は型になると予想されますが、そうではありません。

class MyUsedTypes: public vcg::UsedTypes< vcg::Use<MyVertex>::AsVertexType>, 
              vcg::Use<MyFace>::AsFaceType> 


class MyVertex : public vcg::Vertex<MyUsedTypes, vcg::vertex::Coord3d, vcg::vertex::Normal3f> {}; 
class MyFace : public vcg::Face<MyUsedTypes, vcg::face::VertexRef> {}; 
class MyMesh : public vcg::tri::TriMesh< std::vector<MyVertex>, std::vector<MyFace> > {}; 
+0

チュートリアルのリンクが壊れています。 – xor007

関連する問題