Code::Blocksを使ã£ãŸè‡ªä½œODEプãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法 (Windows)
Code::Blocksã§ã®ODE本サンプルプãƒã‚°ãƒ©ãƒ ã®ã‚³ãƒ³ãƒ‘イル法を説明ã—ã¾ã—ãŸï¼Žæ¬¡ã«ï¼Œè‡ªåˆ†ã§ä½œæˆã—ãŸODEを使ã£ãŸãƒ—ãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法を説明ã—ã¾ã™ï¼Žä¸å…·åˆãŒã‚ã£ãŸã®ã§è¨˜äº‹ã‚’変更ã—ã¾ã—ãŸ(2007-7-18).
- 自作プãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法
- 自作プãƒã‚°ãƒ©ãƒ ã¯ã€Œãƒ‰ã‚ュメントã€ã®ä¸‹ã«src\ode\roboSimuã¨ã„ã†ãƒ•ォルダを作り,ãã®ä¸ã«ä½œæˆã™ã‚‹ã“ã¨ã«ã—ã¾ã™ï¼ŽVistaã®å ´åˆã¯ä»¥ä¸‹ã®ã‚ˆã†ãªãƒ‘スã«ãªã‚Šã¾ã™ï¼Ž
-
C:\Users\ユーザå\Documents\src\ode\roboSimu 
ã“ã®æ„味ã¯ï¼£ãƒ‰ãƒ©ã‚¤ãƒ–ã®ä¸ã«ã€Usersã¨ã„ã†ãƒ•ォルダãŒã‚り〠ãã®ä¸ã«ãƒ¦ãƒ¼ã‚¶åã®ãƒ•ォルダãŒã‚りã€ãã®ä¸ã«Documents〠ãã®ä¸ã«srcã€ã¾ãŸãã®ä¸ã«odeã€ã¾ãŸã¾ãŸãã®ä¸ã«roboSimu フォルダãŒã‚ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ï¼Ž
-
- roobSimuフォルダã®ä¸ã«æ¬¡ã®ãƒ•ァイルをダウンãƒãƒ¼ãƒ‰ã—,ãã®å ´æ‰€ã«è§£å‡ã—ã¾ã™ï¼Žãƒ‘スã¯
C:\Users\ユーザå\Documents\src\ode\roboSimu\pro1-1
ã¨ãªã‚Šã¾ã™ï¼Ž
- ダウンãƒãƒ¼ãƒ‰ãƒ•ァイル: pro1-1.zip
-
c:\ode-0.10.1\drawstuff
上ã®drawstuffフォルダをコピーã—ã€ä¸‹ã®odeフォルダ
C:\Users\ユーザå\Documents\src\ode
ã®ä¸ã«è²¼ã‚Šä»˜ã‘る。ã“ã“ã§ã¯ï¼Œç°¡å˜ã«ã™ã‚‹ãŸã‚ã«ODE付属デモプãƒã‚°ãƒ©ãƒ をビルドã™ã‚‹ã¨ãã«ä½¿ç”¨ã—ãŸ
c:\ode-0.10.1\build\cb-gcc\demo_basket.cbp
を使ã„ã¾ã™ï¼Žä¸Šã§è§£å‡ã—ãŸpro1-1ã®ä¸ã«hello.cppã¨demo_basket.cbpã®ãƒ•ァイルãŒå‡ºæ¥ã¦ã„ã‚‹ã¯ãšã§ã™ï¼Ž
- demo_basket.cbpã®åå‰ã‚’hello.cbpã«å¤‰æ›´ã™ã‚‹ï¼Ž
- Code::Blocksã‚’èµ·å‹•ã—,上ã§åå‰ã‚’変ãˆãŸhello.cbpã‚’é–‹ã.
- 「プãƒã‚¸ã‚§ã‚¯ãƒˆï¼ˆï¼°ï¼‰ã€â†’「プãƒãƒ‘ティã€ã‚’é¸æŠž

- プãƒã‚¸ã‚§ã‚¯ãƒˆ/ターゲット画é¢ãŒé–‹ãã®ã§ã€Œã‚¿ã‚¤ãƒˆãƒ«ï¼šã€ã‚’helloã«å¤‰æ›´ã—,「OKã€ã‚’クリック

- 「プãƒã‚¸ã‚§ã‚¯ãƒˆï¼ˆï¼°ï¼‰ã€â†’「ファイルã®å‰Šé™¤ã€ã§ï¼Œdemo_basket.cppã«ãƒã‚§ãƒƒã‚¯ã‚’ã„れ,「OKã€ã‚’クリックã™ã‚‹ï¼Žä½•も表示ã•れãªã„å ´åˆã¯ï¼Œ6ã®å›³ã®ã‚ˆã†ã«ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã®ä¸‹ã«ã‚ã‚‹demo_basketをクリックã—ã¦æ–‡å—ã‚’å転ã•ã›ã‚‹ï¼Ž
- 「プãƒã‚¸ã‚§ã‚¯ãƒˆï¼ˆï¼°ï¼‰ã€â†’ã€Œãƒ•ã‚¡ã‚¤ãƒ«ã‚’è¿½åŠ ã€ã§ï¼Œhello.cppã‚’è¿½åŠ ã™ã‚‹ï¼Ž
- ã€Œè¤‡æ•°é¸æŠžã€ã®ç”»é¢ãŒé–‹ãã®ã§ï¼ŒDebugDoubleLibã«ãƒã‚§ãƒƒã‚¯ã‚’入れ「OKã€ã‚’クリック
- 「プãƒã‚¸ã‚§ã‚¯ãƒˆï¼ˆï¼°ï¼‰ã€â†’「プãƒãƒ‘ティã€ã‚’é¸æŠž
- ビルドターゲットã®ã‚¿ãƒ–ã‚’é¸æŠžã—,ビルドターゲットã¯DebugDoubleLibを残ã—,他ã¯å…¨éƒ¨å‰Šé™¤ã™ã‚‹ï¼Žå‡ºåŠ›ãƒ•ã‚¡ã‚¤ãƒ«å,オブジェクト出力ディレクトリを以下ã®ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹ï¼Žã£ã¦ã„ã‚‹ã“ã¨ã‚’確èªã—「OKã€ã‚’クリック.
- 出力ファイルå: hello.exe
- オブジェクト出力ディレクトリ: obj

- 次ã«åŒã˜ç”»é¢ã®ã€Œãƒ“ルドオプション...ã€ã‚’クリック.以下ã®ã€Œãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã®ãƒ“ルドオプションã€ã®ç”»é¢ã«ãªã‚‹ï¼Žã€Œãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®æ¤œç´¢ã€ã®ã‚¿ãƒ–ã‚’é¸æŠžï¼Ž

- パスを以下ã®ã‚ˆã†ã«å¤‰æ›´ã—,「OKã€ã‚’クリックã™ã‚‹ï¼Ž
-
..\..\include
ã‚’
C:\ode-0.10.1\include
ã¸å¤‰æ›´
-
..\..\ode\src
C:\ode-0.10.1\ode\src
ã¸å¤‰æ›´
-
- åŒã˜ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã®ã€Œã‚³ãƒ³ãƒ‘イラã€ã®å³ã«ã‚る「リンカã€ã®ã‚¿ãƒ–ã‚’é¸æŠžã—,パスを以下ã®ã‚ˆã†ã«å¤‰æ›´ã—,「OKã€ã‚’クリックã™ã‚‹ï¼Ž
-
..\..\lib\DebugDoubleLib
ã‚’
C:\ode-0.10.1\lib\DebugDoubleLib
ã¸å¤‰æ›´
-
- 「ビルド(B)ã€â†’「ビルドã—ã¦å®Ÿè¡Œ(L)ã€ã‚’é¸æŠž
- 赤ã„çƒãŒè‡ªç”±è½ä¸‹ã—,地é¢ã‚’çªã抜ã‘ãŸã‚‰æˆåŠŸï¼ŽãŠç–²ã‚Œæ§˜ï¼
- ãªãŠï¼Œå‚考ã¾ã§ã«ä½œæ¥å¾Œã®ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルã¯pro1-1after1.zipã§ã™ï¼Ž


- 自作プãƒã‚°ãƒ©ãƒ ã¯ã€Œãƒ‰ã‚ュメントã€ã®ä¸‹ã«src\ode\roboSimuã¨ã„ã†ãƒ•ォルダを作り,ãã®ä¸ã«ä½œæˆã™ã‚‹ã“ã¨ã«ã—ã¾ã™ï¼ŽVistaã®å ´åˆã¯ä»¥ä¸‹ã®ã‚ˆã†ãªãƒ‘スã«ãªã‚Šã¾ã™ï¼Ž
ã§ã‚€
ãŠã„ããŒã—ã„ã¨ã“ã‚ã€ã™ã¿ã¾ã›ã‚“。
早速確èªã—ã¦ã¿ã¾ã™ã€‚
æ‚©ã‚る親父ã•ん,
ã¤ãã°ãƒãƒ£ãƒ¬ãƒ³ã‚¸ã§å–り込んã§ã„ã¦è¿”事ãŒé…れã¦ã™ã¿ã¾ã›ã‚“.
ODEã®ãƒ˜ãƒƒãƒ€ãƒ¼ãƒ•ァイルãŒèªã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã›ã‚“.14番ã®ãƒ‘スを確èªã—ã¦ãã ã•ã„.もã—,ODE0.10.1ã‚’ãŠä½¿ã„ã®å ´åˆã¯ï¼Œ0.10.0ã‚’0.10.1ã«å¤‰æ›´ã—ã¦ãã ã•ã„ã.
ã§ã‚€
||=== hello, DebugDoubleLib ===|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|1|ode/ode.h: No such file or directory|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|2|drawstuff/drawstuff.h: No such file or directory|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|4|error: `dWorldID’ does not name a type|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|5|error: `dBodyID’ does not name a type|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|6|error: `dReal’ does not name a type|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|7|error: `dsFunctions’ does not name a type|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp||In function `void simLoop(int)’:|
C:\Documents and Settings\takaakiW\My Documents\src\ode\roboSimu\pro1-1\hello.cpp|11|error: `world’ was not declared in this scope|
||=== Build finished: 35 個ã®ã‚¨ãƒ©ãƒ¼ã€ 0 個ã®è¦å‘Š ===|
é•·ããªã‚‹ã®ã§ã™ãŒã€ã™ã¹ã¦ã®ã‚¨ãƒ©ãƒ¼ã‚’表示ã—ã¾ã™ã€‚
pro1-1.zipã‚’è§£å‡ã—ã€è‡ªä½œãƒ—ãƒã‚°ãƒ©ãƒ ã®ãƒ“ルド法を上記をå‚考ã«
進ã‚ã¦ã¿ãŸã®ã§ã™ãŒã‚¨ãƒ©ãƒ¼ãŒå‡ºã¾ã—ãŸã€‚å‰å›žã¨ã¯é•ã£ã¦å†…容を見るã¨
具体的ãªã‚¨ãƒ©ãƒ¼ã®ã‚ˆã†ã§ã™ãŒã‚ˆãã‚ã‹ã‚Šã¾ã›ã‚“。教ãˆã¦ã„ãŸã ã‘ãªã„ã§ã—ょã†ã‹ï¼Ÿ
MinGwã¯ä»¥å‰ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã¾ã—ãŸãŒã€ã‚¢ãƒ³ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯ã™ã§ã«
ã—ã¦ã‚ã‚‹ã¨æ€ã„ã¾ã™ã€‚ã‚‚ã†ä¸€åº¦ç¢ºèªã—ã¦è¦‹ã¾ã™ã€‚
ビルドã—ãŸã®ã¯hello.cppã§ã™ã€‚
æ‚©ã‚る親父ã•ã‚“ã€
何をビルドã—ã¦å®Ÿè¡Œã—ãŸã®ã§ã—ょã†ã‹ï¼Ÿã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒä»–ã«ã‚れã°å…¨ã¦æ•™ãˆã¦ãã ã•ã„。
ã¾ãŸã€Code::Blocksをインストールã™ã‚‹ä»¥å‰ã‹ã‚‰MinGWを使ã‚れã¦ã„ã¾ã—ãŸã‹ï¼Ÿã€€ãƒ‘スを変ãˆãªã„ã¨ç«¶åˆã™ã‚‹ã‚ˆã†ã§ã™ã€‚
ã§ã‚€
上記ã®ä½œæ¥å¾Œã€ãƒ“ルドã—ã¦å®Ÿè¡Œã‚’ãŠã“ãªã£ãŸã¨ã“ã‚ã€ä¸‹è¨˜ã®ã‚¨ãƒ©ãƒ¼ãŒã§ã¾ã—ãŸã€‚
undefined reference to ‘ WinMain@16′
ã¨å‡ºã¾ã—ãŸã€‚åŽŸå› ã¯ä½•ã§ã—ょã†ã€‚宜ã—ããŠé¡˜ã„ã—ã¾ã™ã€‚
demuraã•ã‚“ã€
ã“ã®ãƒšãƒ¼ã‚¸ã®æ–¹æ³•ã‚’å‚考ã«ã—ã¦C:\Documents and Settings\onishi\My Documents\src\odeã®ãªã‹ã«æ–°ã—ã„フォルダを作ã£ã¦ã€è©¦ã—ã¾ã—ãŸãŒã€
————– Build: DebugDoubleLib in hello —————
コンパイルä¸: hello.cpp
コンパイルä¸: ..\..\drawstuff\src\resources.rc
ãƒªãƒ³ã‚¯ä¸ ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«: hello.exe
C:\Program Files\CodeBlocks\MinGW\bin\ld.exe: c:\ode-0.10.1\lib\DebugDoubleLib: No such file: Permission denied
collect2: ld returned 1 exit status
プãƒã‚»ã‚¹ã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ 1 ã§çµ‚了ã—ã¾ã—㟠(0 分 2 ç§’)
0 個ã®ã‚¨ãƒ©ãƒ¼ã€ 0 個ã®è¦å‘Š
ã§çµ‚了ã—ã¾ã—㟠解決方法を教ãˆã¦ã„ãŸã ã‘れã°å¹¸ã„ã§ã™ã€‚
demuã•ã‚“ã€ã“ã‚“ã«ã¡ã¯
ã“ã®ãƒšãƒ¼ã‚¸ã®æ–¹æ³•ã‚’å‚考ã«ã—ã¦C:\ode-0.10.0\mybuildã®ãªã‹ã«
æ–°ã—ã„フォルダを作ã£ã¦ã€è©¦ã—ã¾ã—ãŸãŒã€
——-Build: DebugDoubleLib in hello ——-
ãƒªãƒ³ã‚¯ä¸ ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«: hello.exe
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../libmingw32.a(main.o):main.c:(.text+0×104): undefined reference to `_WinMain@16′
collect2: ld returned 1 exit status
プãƒã‚»ã‚¹ã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ 1 ã§çµ‚了ã—ã¾ã—㟠(0 分 0 ç§’)
1 個ã®ã‚¨ãƒ©ãƒ¼ã€ 0 個ã®è¦å‘Š
ã¨å±ã‚‰ã‚Œã¾ã—ãŸã€‚怪ã—ã„ã¨ã“ã‚ã‚’æ•™ãˆã¦ã„ãŸã ã‘れã°å¹¸ã„ã§ã™ã€‚
å•題を解決ã™ã‚‹ã“ã¨ãŒã§ãã¾ã—ãŸï¼Ž
ã‚りãŒã¨ã†ã”ã–ã„ã¾ã—ãŸï¼Ž
mif805ã•ん,
ã„ã¤ã‚‚ã‚りãŒã¨ã†ã”ã–ã„ã¾ã™ï¼Žè‡ªåˆ†ã§ã¯æ°—ãŒä»˜ã‹ãªã‹ã£ãŸã®ã§å¤§å¤‰åŠ©ã‹ã‚Šã¾ã™ï¼Ž
ã”æŒ‡æ‘˜ã®ã¨ãŠã‚Šã§ã™ï¼Žä¸å…·åˆç®‡æ‰€ã‚’訂æ£ã—ã¾ã—ãŸï¼Ž
åŽŸå› ã¯ï¼Œç§ã®ãƒ•ァイルを確èªã—ãŸã¨ã“ã‚,c:\ode-0.10.0\lib\DebugDoubleLibã®ä¸èº«ã‚’c:\Users\ユーザå\Documents\src\ode\libã®ä¸ã«ã‚³ãƒ”ーã—ã¦ã„ãŸã®ã§ï¼Œè¨‚æ£å‰ã®è¨˜äº‹ã§ãƒ“ルドã§ãã¾ã—ãŸï¼Ž
ã¾ãŸï¼Œä»¥å‰èª¬æ˜Žã—ã¦ã„ãŸæ–¹æ³•ã¯ï¼ŒCode::Blocks全体ã®ç’°å¢ƒè¨å®šã§ãƒ©ã‚¤ãƒ–ラリãªã©ã‚’指定ã—ã¦ã„ãŸã®ã§ï¼Œã„ã‚ã„ã‚ãªãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã™ã‚‹ã¨ãã«ã¯è‰¯ã„方法ã§ã¯ã‚りã¾ã›ã‚“.å„プãƒã‚¸ã‚§ã‚¯ãƒˆãƒ•ァイルã®ä¸ã§æŒ‡å®šã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã—ã¾ã—ãŸï¼Ž
ã§ã‚€
demuã•ã‚“ã€ã“ã‚“ã«ã¡ã¯
ä¸Šè¨˜ã®æ–¹æ³•ã§WindowsXPã¨ubuntu8.04ã§è©¦ã—ãŸã¨ã“ã‚,
両方ã¨ã‚‚エラーãŒå‡ºã¾ã—ãŸï¼Ž
XPã®ã»ã†ã§ã¯
————– Build: DebugDoubleLib in hello —————
コンパイルä¸: hello.cpp
コンパイルä¸: ..\..\drawstuff\src\resources.rc
ãƒªãƒ³ã‚¯ä¸ ã‚³ãƒ³ã‚½ãƒ¼ãƒ«å®Ÿè¡Œãƒ•ã‚¡ã‚¤ãƒ«: hello.exe
C:\Program Files\CodeBlocks\MinGW\bin\ld.exe: cannot find -lode_doubled
collect2: ld returned 1 exit status
プãƒã‚»ã‚¹ã¯ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ 1 ã§çµ‚了ã—ã¾ã—㟠(0 分 0 ç§’)
1 個ã®ã‚¨ãƒ©ãƒ¼ã€ 0 個ã®è¦å‘Š
ã¨ãªã‚Šã¾ã—ãŸï¼Žubuntuã§ã‚‚/usr/bin/ld: cannot find -lode_doubledã¨è¡¨ç¤ºã•れã¾ã—ãŸï¼Žãªã«ãŒåŽŸå› ãªã®ã§ã—ょã†ã‹ï¼Ÿ