Makefileを使った自作ODE0.16.1プログラムのビルド(Linux)

自分で作成したODE0.16.1を使ったプログラムのビルド法を説明します。環境はLinuxでMakefileを使います。

    • テンプレートプログラムのビルド法
      • まず、自作プログラムを作業ディレクトリを作ります。
        • $mkdir /home/ユーザ名/src/ode-0.16.1/myprog
      • 次に、自作プログラムのテンプレートなる次のファイルをmyprogフォルダの中に次のファイルをダウンロードします。
      • その場所に展開します。 /home/ユーザ名/src/ode-0.16.1/myprog/templateというディレクトリが作成されます。
        • $ cd /home/ユーザ名/src/ode-0.16.1/myprog
        • $ tar xvf template_linux200625.tar
      • ビルド
        • $ cd template
        • $ make
      • 実行
        • $ ./template
        • うまくいくと上図のような赤玉が落下します。
    • 自作プログラムのビルド法
        • テンプレートディレクトリをコピーして好きな名前変えます。ここではhelloにします。
          • $ cd /home/ユーザ名/src/ode-0.16.1/myprog
          • $ cp -r  template hello
        • テンプレートディレクトリには以下の3つのファイルがあります。
          • Makefile
          • template.cpp
          • template.h
        • template.cppとtemplate.hを好きな名前に変えます。ここではhello.cppとhello.h
          • $ cd /home/ユーザ名/src/ode-0.16.1/myprog/hello
          • $ mv template.cpp hello.cpp
          • $ mv template.h  hello.h
        • ビルド用の設定ファイルMakefileの12行目を中を上で変更した名前に変更して保存します。このMakefileはソースファイルが1個しかない場合なので複数ある場合は、Makefileのフォーマットに従って書き換える必要があります。
      # Makefile
      
      CXX = g++
      CFLAGS = -g 
      
      LIB = -lode -ldrawstuff -lGL -lGLU -lX11 -lrt -lm -lpthread -lstdc++
      LIBDIR = -L/usr/lib/x86_64-linux-gnu -L../../drawstuff/src/.libs  -L../../ode/src/.libs -L/usr/lib 
      INCDIR = -I../../include -I../../ode/src -I/usr/include
      
      # 以下のtemplateを好きなファイル名に変更する。
      OUT  = template
      OBJS = $(OUT).o
      
      all: $(OUT)
      
      $(OUT): $(OBJS)
      	$(CXX) $(CFLAGS) -o $@ $(OBJS) $(INCDIR) $(LIBDIR) $(LIB) 
      
      $(OUT).o: $(OUT).cpp template.h
      	$(CXX) $(CFLAGS) -c $< $(INCDIR) $(LIBDIR) $(LIB) 
      
      clean: 
      	rm -f $(OUT)   
      	rm -r $(OBJS)  
      
      .PHONY: all clean
      • ビルド
        • $ make
        • なお、ビルドしてエラーが出る場合は、ODEとDrawstuffのライブラリの位置が違うかもしれません。ライブラリの場所を相対パスで指定しているので、自作のファイルの配置される場所によってライブラリを読めなくなります。その場合は7、8行目のパスを変更してください。

終わり

コメント

タイトルとURLをコピーしました