我在gpio的demo里面稍微修改了一下,可以复现出我提出的问题。
分别用mingw的make和cmd的idf.py build进行了编译
mingw的make可以正常编译通过
cmd的idy.py build方式报错如下:
事实上fun_c的函数已经在libmain.a中的func.obj文件中了
Search found 5 matches
- Mon Apr 20, 2020 9:36 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
- Replies: 5
- Views: 12834
- Sat Apr 18, 2020 6:31 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32获取chipID
- Replies: 1
- Views: 9840
ESP32获取chipID
现在项目里面需要获得芯片的一个唯一ID发送到服务器进行设备绑定。 有如下问题不太了解, 1.在ESP8266里面有个API(system_get_chip_id())能够获得一个唯一ID号,请问在ESP32中是否也有类似的API呢? 2.如果没有相关API的话通过esp_efuse_mac_get_default()这个函数获取到的一个MAC地址是唯一所有芯片的MAC吗?如果不是,需要使用什么api来获得一个唯一ID呢? 3.在ESP-IDF4.0里面: esp_err_t esp_efuse_mac_get_custom(uint8_t *mac); esp_err_t esp_efuse_...
- Sat Mar 21, 2020 3:55 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
- Replies: 5
- Views: 12834
Re: ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
谢谢您的解答! 问题已经解决,确实是库的顺序引起的依赖问题。 我这边的情况如下: main组件里面的函数fun_main_a()调用了 已经编译好 的静态库中的函数fun_lib_1(),静态库中的函数fun_lib_1再调用main组件中的另外一个函数fun_main_b() 在编译的时候把fun_main_a()与fun_main_b()打包到了libmain.a静态库中,然后在链接阶段会出现找不到fun_main_a()或者fun_main_b()函数的情况。至于是找不到哪个函数取决于包含fun_lib_1()的库相对于libmain.a的位置。 我这边的解决方法是把fun_main_a...
- Wed Mar 18, 2020 3:58 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
- Replies: 5
- Views: 12834
Re: ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
这个问题看起来是静态库的依赖顺序问题,为啥传统的GNU Make不会有这个问题,而使用Ninja就会出现这个问题呢?
- Tue Mar 17, 2020 8:49 am
- Forum: ESP-IDF 中文讨论版
- Topic: ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
- Replies: 5
- Views: 12834
ESP32 IDF-V4.0 ninja编译无法引用外部静态库的问题
我在自己的项目里面引用了三个外部静态库,并且修改了CMakeLists.txt文件,增加了库路径等,在最后链接的时候,(引入的库里面报错)提示一些函数未定义,而这些函数是在自己的源文件里面实现的,并且已经链接到了libmain.a里面。
开发环境:Vscode+ESP-IDF插件,(在cmd命令行里面调用idf.py build也是同样的错误)
另外:
在mingw32环境使用make方式可以正常编译通过,说明代码和库是没有问题的。
请问一下,有人是否也遇到了同样的问题。
开发环境:Vscode+ESP-IDF插件,(在cmd命令行里面调用idf.py build也是同样的错误)
另外:
在mingw32环境使用make方式可以正常编译通过,说明代码和库是没有问题的。
请问一下,有人是否也遇到了同样的问题。