1. 程式人生 > >beaglebone black配置BlackLib庫

beaglebone black配置BlackLib庫

 	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