导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    希望全志的大神出一个D1s tina APP怎么引用其他库文件的教程

    MR Series
    5
    9
    3135
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • A
      astonzorro LV 3 最后由 编辑

      目前正在研究D1S,开发文档很多,但是感觉不是那么友好几乎都是底层开发,目前想在D1S开发一些上层的应用程序,遇到这个芯片需要交叉编译,跟之前直接用GCC就编译有点差异,这个OpenWRT没有GCC,只能在HOST的电脑上编译好程序再下载到D1S上运行,目前需要用到音频相关的程序,比如需要asound库,源码库里面是带的,但是不知道如何让自己的程序去引用?这方面不知道有没有大神知道的?相信做这个D1开发的一定会遇到。

      1 条回复 最后回复 回复 引用 分享 0
      • YuzukiTsuru
        柚木 鉉 LV 9 最后由 编辑

        推荐的方法是放到package里在编译文件系统的时候就引用了。

        G 1 条回复 最后回复 回复 引用 分享 0
        • YuzukiTsuru
          柚木 鉉 LV 9 最后由 编辑

          我这里有一个程序用到了SDL,直接CMake里find_package(SDL)就好了

          A 2 条回复 最后回复 回复 引用 分享 0
          • A
            astonzorro LV 3 @YuzukiTsuru 最后由 编辑

            @yuzukitsuru 好的,十分感谢,晚上试试看

            1 条回复 最后回复 回复 引用 分享 0
            • A
              astonzorro LV 3 @YuzukiTsuru 最后由 编辑

              @yuzukitsuru 好的,十分感谢,晚上试试看

              1 条回复 最后回复 回复 引用 分享 0
              • G
                GSD_ZCM LV 4 @YuzukiTsuru 最后由 编辑

                @yuzukitsuru 前辈们,请问下我在Tina的目录下的dl看到有curl这个库,然后我的程序想用这个库,Makefile得这么添加这个库呢?不知道他的动态库和对应的头文件解压到那里去了
                D1-H_SDK\PET_D1-H_P01_Linux\dl\curl-7.54.0.tar.bz2

                C 1 条回复 最后回复 回复 引用 分享 0
                • C
                  chengwei_peng LV 6 @GSD_ZCM 最后由 编辑

                  @gsd_zcm 一般会被其他包依赖的头文件和库都会拷贝到 out/<方案>/staging_dir/target/usr/include和 out/<方案>/staging_dir/target/usr/lib 目录下。在Makefile中,通过 -I$(STAGING_DIR)/usr/include/ 和 -L$(STAGING_DIR)/usr/lib 引脚即可。
                  如果不行,则需要确认这个目录下的实际头文件路径是不是变化了。如果无论怎样都没有,则需要确认你依赖的头文件/库等,package中的Makefile是否有定义Build/InstallDev,Build/InstallDev是将库和头文件拷贝到 STAGING_DIR 。

                  G 1 条回复 最后回复 回复 引用 分享 0
                  • G
                    GSD_ZCM LV 4 @chengwei_peng 最后由 编辑

                    @chengwei_peng 谢谢前辈,讲解的好详细,按照前辈的方法,代码可以正常编译了,下面是我的makefile,可能有些地方不够好,伙伴们可以参考下。

                    CROSS = /home/linux/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/staging_dir/toolchain/bin/riscv64-unknown-linux-gnu-
                    CC = $(CROSS)gcc     #定义CC为gcc编译
                    RM = rm -rf
                    
                    #获取当前目录下的所有.c文件
                    SRCS=$(wildcard ./*.c)
                    
                    #将SRC中所有出现.c的替换成.o
                    OBJS=$(patsubst %.c, %.o, $(SRCS))
                    
                    STAGING_DIR = /home/linux/allwinner/D1/PET_D1-H_P01_Linux/out/d1-h-nezha/staging_dir/target/usr
                    HEADER_PATH = -I $(STAGING_DIR)/include			 		#定义HEADER_PATH为当前工程中的头文件路径
                    LIB_PATH = -L $(STAGING_DIR)/lib			           	#定义LIB_PATH为当前工程中的头文件路径
                    $(warning LIB_PATH)            							#输出当前LIB_PATH中的内容
                    LIBS = -lcurl -lssl -lcrypto -lnghttp2 											#制定LIBS链接库的名称
                    
                    TARGET=face_api
                    
                    #这些变量不能单独使用 必须在命令中使用
                    #$@	表示目标
                    #$^	表示所有的依赖
                    #$<	表示第一个依赖
                    $(TARGET):$(OBJS)
                    	$(CC) $^ -o $@ $(LIB_PATH) $(LIBS) # 告诉编译器生成可执行文件时库存放的目录,以及库的名字
                    
                    #模式匹配 所有的.o都依赖对应的.c
                    #将所有的.c 生成对应的.o
                    %.o:%.c
                    	$(CC) -c $< -o $@ $(HEADER_PATH)  #告诉编译器申城中间文件时头文件的所在目录
                    
                    #声明clean为伪目标 伪目标不去判断目标文件是否存在或者已经更新
                    #无条件执行命令
                    .PHONY:clean
                    clean:
                    	$(RM) $(OBJS) $(TARGET)
                    
                    xiaowenge 1 条回复 最后回复 回复 引用 分享 0
                    • xiaowenge
                      DOT小文哥 LV 8 @GSD_ZCM 最后由 编辑

                      @gsd_zcm 在 希望全志的大神出一个D1s tina APP怎么引用其他库文件的教程 中说:

                      @chengwei_peng 谢谢前辈,讲解的好详细,按照前辈的方法,代码可以正常编译了,下面是我的makefile,可能有些地方不够好,伙伴们可以参考下。

                      注释好详细,感谢分享!

                      1 条回复 最后回复 回复 引用 分享 0
                      • 1 / 1
                      • First post
                        Last post

                      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                      行为准则 | 用户协议 | 隐私权政策