openwrt c語言使用uci
在ubuntu上用eclipse來編譯的C檔案,然後生成bin檔案放在openwrt的機器上執行
想使用c語言來呼叫uci的一些介面來實現讀取和修改配置的工作
ubuntu上安裝uci
參考:https://blog.csdn.net/rainforest_c/article/details/70142987
C語言呼叫uci的說明
參考:https://blog.csdn.net/bytxl/article/details/43761573
https://blog.csdn.net/junglefly/article/details/52415978
然後在eclipse裡面編譯的時候各種報錯
1、提醒uci.h找不到,然後參考:https://blog.csdn.net/x13163303344/article/details/79182787
添加了路徑,錯誤解決;
2、if (UCI_OK != uci_load(ctx, UCI_CONFIG_FILE, &pkg)) 這句報錯
應該是UCI_CONFIG_FILE沒有定義,參考這個:#define UCI_CONFDIR "/etc/config",做了對應的路徑定義
3、
- xxx.c:(.text+0x1f8): undefined reference to `uci_alloc_context'
- xxx.c:(.text+0x210): undefined reference to `uci_lookup_ptr'
- xxx.c:(.text+0x228): undefined reference to
- xxx.c:(.text+0x270): undefined reference to `uci_free_context
搜到這個文章解決的:https://blog.csdn.net/flexman09/article/details/51546277
這個問題現在還沒解決,搜尋後說是2方面的問題
一個是在makefile裡面加-luci,這個因為是用的eclipse開發,搜尋後在這個裡面做了修改
Press Project --> Properties --> C/C++ build --> Settings --> GCC C++ Linker -->
Libraries
結果是報了mipsel-openwrt-linux-uclibc/bin/ld: cannot find -luci
不知道是哪裡的問題。
二個說是因為許可權問題,我還在想辦法嘗試看是不是這個問題