beaglebone black配置BlackLib庫
阿新 • • 發佈:2018-12-19
cd Desktop
git clone https://github.com/yigityuce/BlackLib.git //克隆庫到本地
用filezilla把克隆的拷貝到pc上 使用v3版本資料夾命名為blacklib_v3.0 修改makefile
CXX=arm-linux-gnueabihf-g++
INCLUDES=-I/usr/include/c++/6.3.0 //自己檢視自己版本
CPPFLAGS=-D__GXX_EXPERIMENTAL_CXX0X__ -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 -D__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8
CXXFLAGS=-std=c++0x -O0 -g3 -Wall -c -fmessage-length=0 -pthread $(CPPFLAGS) $(INCLUDES)
LDFLAGS=-lpthread
LDLIBS=-L/usr/lib
RM=rm -f
SOURCES=./BlackADC/BlackADC.cpp ./BlackDirectory/BlackDirectory.cpp ./BlackGPIO/BlackGPIO.cpp ./BlackI2C/BlackI2C.cpp ./BlackMutex/BlackMutex.cpp ./BlackPWM/BlackPWM.cpp ./BlackSPI/BlackSPI.cpp ./BlackThread/BlackThread.cpp ./BlackTime/BlackTime.cpp ./BlackUART/BlackUART.cpp ./BlackCore.cpp ./examples.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=BlackLib-executable
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CXX) $(LDLIBS) $(OBJECTS) $(LDFLAGS) -o [email protected]
.cpp.o:
$(CXX) $(CXXFLAGS) $< -o [email protected]
clean:
$(RM) $(OBJECTS)
拷貝到/usr/include/目錄下。給執行許可權
cd /usr/include/blacklib_v3.0/
make
生成一堆.o檔案 把所有子資料夾下的.o檔案移動到blacklib_v3.0目錄下 把所有.o檔案打包為庫
ar rcs libblacklib.a *.o
把libblacklib.a移動到/usr/lib/目錄下
cd /usr/include/blacklib_v3.0/SPI_SETUP/ ./setup_from_BBB
在桌面下建立一個示例
cd /home/Debian/Desktop/
nano test.cpp
gpio示例
#include <iostream> #include "/usr/include/blacklib_v3.0/BlackLib.h" //這裡發現直接BlackLib.h掛不上 using namespace BlackLib; int main (int argc,char *arg[]) { BlackGPIO led1(GPIO_67,output); led1.setValue(low); while (1) { led1.setValue(high); sleep(1); led1.setValue(low); sleep(1); } return 0; }
編譯
arm-linux-gnueabihf-g++ -Wall test.cpp -o test -lblacklib -lpthread
執行
./test