先看報錯資訊,在開發板上運行[root@my lib]# ./arm-Modbus-serial -qws./arm-Modbus-serial: error while loading shared libraries: libmodbus.so.5: cannot open shared object file: No such file or directory 我已經把libmodbus交叉編譯并已經放到開發板如下目錄usr/local/arm-libmodbus-3.0.3/在pro檔案里添加(qtcreator自動添加的)win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../usr/local/arm-libmodbus-3.0.3/lib/release/ -lmodbuselse:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../usr/local/arm-libmodbus-3.0.3/lib/debug/ -lmodbuselse:unix: LIBS += -L$$PWD/../../../../../usr/local/arm-libmodbus-3.0.3/lib/ -lmodbusINCLUDEPATH += $$PWD/../../../../../usr/local/arm-libmodbus-3.0.3/includeDEPENDPATH += $$PWD/../../../../../usr/local/arm-libmodbus-3.0.3/include我想問下,qt程式運行后,如果鏈接外部庫,是搜索什么路徑?是不是else:unix: LIBS += -L$$PWD/../../../../../usr/local/arm-libmodbus-3.0.3/lib/ -lmodbus。
uj5u.com熱心網友回復:
你的也是把libmodbus庫放在QT中呼叫的嗎?uj5u.com熱心網友回復:
樓主怎么移植libmodbus的啊 有編譯好的庫嗎?共享一下啊uj5u.com熱心網友回復:
編譯庫應該不難啊!1. CC=arm-linux-gcc ./configure --prefix=/home/xxx/libmodbus/ --host=arm-linux2. Make & make install3. 生成的測驗程式的bin檔案在隱藏的檔案下。你可以把編譯好的庫放在qt庫的lib下!uj5u.com熱心網友回復:
glibc中有個命令叫"ldd",可以用來檢測應用程式或動態庫對其它動態庫的依賴關系,比如:[root@localhost bin]# ldd which linux-gate.so.1 => (0x00189000) libc.so.6 => /lib/libc.so.6 (0x00382000) /lib/ld-linux.so.2 (0x0035c000)如果你的根檔案系統里沒有這個命令,就只能自己想辦法猜了。uj5u.com熱心網友回復:
元件有問題,我用Ubuntu編譯不通過,從Ubuntu里復制過去的so檔案到開發板,無法運行。用Debian9編譯能通過,用Debian9復制過去的so檔案就能成功運行。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/266074.html
標籤:其他技術討論專區
