- 把mtdev2tuio放上DM8134執行,出現not found訊息
- 猜想可能是跟之前在Makefile裡加入--entry=main有關,因此修改Makefile把這參數拿掉,重新build再放到DM8134上執行,結果依然出現not found訊息
- 拿同時build的其他package測試。在mtdev裡面有mtdev-test程式,在liblo裡面有oscsend、oscdump兩隻程式,各自執行都沒有問題
- 由上推測可能跟mtdev2tuio使用的toolchain設定有關
- 修改mtdev2tuio程式,修改成只印出"hello world",不必要的include也全部拿掉,Makefile不修改,重新make過後傳送到DM8134執行,結果還是同樣出現not found訊息
- 在TI DM813x_Software_Develoers_Guide文件裡面有教人建立helloworld程式的教學,因此決定依照這教學一步步建立helloworld程式,看編譯完後能不能執行
- 編譯完TI提供的helloworld的教學程式,傳送到DM8134執行,結果沒問題
- TI的教學程式跟自己修改mtdev2tuio程式的最大差別在於compile指令不同,因此決定使用TI教學的compile指令來編譯我的mtdev2tuio程式
- 編譯完後傳送到DM8134執行,結果可以正常執行
- 得到結論問題應該在Makefile
- 問題似乎發生在LD階段,如果將LD階段要做的事情移到CC階段做,編譯出來的執行檔就可以執行
- 直接下GCC指令,將GCC指令修改如後
arm-none-linux-gnueabi-gcc -I/media/DM8134/src/board-support/linux-2.6.37-psp04.04.00.01/usr/include/ -I/mnt/hgfs/share/qtuio/liblo/include/ -I/mnt/hgfs/share/qtuio/mtdev-1.1.2/include/ -L/media/DM8134/targetfs/lib/ -L/media/DM8134/targetfs/usr/lib/liblo/lib/ -L/media/DM8134/targetfs/usr/lib/mtdev/lib/ -o touchtest mtdev2tuio.c -Wl,-Bstatic -lmtdev -llo -Wl,-Bdynamic -lc -lgcc_s -lm
- 編譯完送到DM8134執行,結果沒有問題
其他學到的東西
- 用file指令可以查看binary的簡介
- 用arm-none-linux-gnueabi-ranlib可以看binary的詳細內容
- .so是shared library、.a是static library、.la是描述.a檔案的文字檔
沒有留言:
張貼留言