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 $@
.cpp.o:
$(CXX) $(CXXFLAGS) $< -o $@
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