หน้าเว็บ

วันอาทิตย์ที่ 21 มิถุนายน พ.ศ. 2552

compile TinyOS-2.1.0 แบบ TOSSIM ไม่ได้

อันนี้อาจมีหลายสาเหตุ แต่สาเหตุที่ผมเพิ่งเจอล่าสุดคือ upgrade เป็น ubuntu 9.04 แล้วจากที่เคย compile ได้ก็ไม่ได้ซะงั้น
โดยอาการแรกของผมคือ มันฟ้อง หา g++ ไม่ได้
อันนี้แก้ง่ายมาก
sudo apt-get install g++
เป็นอันเรียบร้อย (g++ เป็น GNU C++ Compiler)

พอพ้น error แรกไปได้ติดปัญหาต่อไปคือ มันงอแงว่า หาไฟล์ Python.h ไม่เจอ
อันดับแรกเลยลองเช็คว่าเรามี file นี้อยู่ในเครื่องรึเปล่า โดยลองสั่ง
sudo find / -name Python.h
เพื่อใช้หา find ดูก็ได้ ถ้าเกิดมันบอกว่าไม่เจอ ซึ่งอาจเกิดจากการที่เราไม่มี python development package หรือไม่ก็เคยมี แแต่เป็นเวอร์ชันเก่า พอ upgrade เป็น 9.04 แล้วมันจะเปลี่ยน python เป็น 2.6 แล้วทำการ remove package ของเวอร์ชันเก่าทิ้ง ก็ให้แก้ download มาลงก่อนด้วย
sudo apt-get install python-dev
หรือถ้าต้องการระบุ version ของ python ก็ใช้เป็น
sudo apt-get install python2.5-dev
โดยเปลี่ยนเลข version ตามอัธยาศัย (ของผมคือลง python2.5 เพิ่มเข้าไปด้วย)

หลังจากลองใช้คำสั่งเดิมในการหาว่า Python.h อยู่ที่ไหนใหม่อีกครั้ง แบบของผมจะไปอยู่ที่
/usr/include/python2.5
ซึ่งให้จำ path นี้ไว้ แล้วไปแก้ในไฟล์ sim.extra ที่อยู่ใน $TOSROOT/support/make โดยให้เติมบรรทัดนี้เข้าไปใต้บรรทัด PFLAGS
CFLAGS += -I/usr/include/python2.5
และเปลี่ยนค่าของ PYTHON_VERSION ให้เป็นตัวที่เราใช้อยู่ ทั้งในไฟล์ sim.extra และ sim-fast.extra
PYTHON_VERSION=2.5
ซึ่งถ้าใครไม่รู้ว่า python ตัวเองเป็น version อะไรสามารถดูได้ด้วยคำสั่ง python -V

แล้วคราวนี้ลอง compile โปรแกรมให้เป็น tossim ใหม่อีกครั้ง ก็น่าจะผ่าน

ระบบที่ทดสอบ

TinyOS: 2.1.0 (via apt-get)
OS: Ubuntu 9.04

ที่มา
http://docs.tinyos.net/index.php/TOSSIM#Appendix_A:_Troubleshooting_TOSSIM_compilation

ไม่มีความคิดเห็น: