新建test4文件夹,将test3(【交叉编译】linux c文件生成so文件并调用示例)文件夹中的libadd.so,add.h,main.c按如下结构放置于test4文件夹中:
luo@luo-desktop:~/test4$ tree . ├── add │ ├── include │ │ └── add.h │ └── lib │ └── libadd.so └── main.c2. 编写CMakeLists.txt文件
新建CMakeLists.txt文件,源码如下:
cmake_minimum_required(VERSION 3.5) project(test) include_directories(./add/include) # main.c中头文件所在目录 link_directories(./add/lib) # libadd.so文件所在路径 add_executable(main main.c) # 生存可执行文件main target_link_libraries(main add) # 链接main文件和libadd.so文件3. 开始编译文件
新建build文件夹,生成的文件都放在该文件夹中统一管理:
luo@luo-desktop:~/test2$ mkdir build && cd build # 指定c编译器为开发板官方提供的交叉编译器 luo@luo-desktop:~/test4/build$ export CC=arm-openwrt-linux-muslgnueabi-gcc luo@luo-desktop:~/test2/build$ cmake .. luo@luo-desktop:~/test2/build$ make luo@luo-desktop:~/test2/build$ ls CMakeCache.txt CMakeFiles cmake_install.cmake main Makefile4. 推送至开发板运行测试
将main,libadd.so,文件推送到开发板/root目录,然后执行以下命令测试:
root@sipeed:~$ ls libadd.so main root@sipeed:~$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd` root@sipeed:~$ ./main hello world 3
测试成功。



