乐鑫技术交流
直播中

李萍

7年用户 1403经验值
私信 关注
[问答]

如何在CMakeList添加路径?

你好,工程师。这段时间我学了一下编辑历程的程序,我都可以编辑。由于H文件和C文件都是C盘,虽然我对程序都不是很了解,但是都能编译。但是现在发现C盘越来越红了,ESP32一个项目都有100多M,所以我想在D盘建立一个项目。自己学一下如何编写程序。(注:IDF都在C盘。c:esp-idf)现在我讲一个程序移植到D盘,如果没有添加自己的文件,单单编译历程也是可以的,但是如何想添加了一个C文件,和HW文件,编译器报错,我估计是编译器找不到这个H文件,我看回其他例程,blink的例子,CMakeList.txt有这句话的set(EXTRA_COMPONENT_DIRS $ENV{IDF_PATH}/examples/common_components/led_strip).  但是这个H文件也是在C盘,如果项目在D盘,H文件也在main的文件夹下,我应该如何添加路径。(谢谢。原谅我这个小白,我相信其他小白也有同样的疑问)
                             

回帖(1)

那年我十七_

2024-6-22 15:31:36
你好!很高兴你在学习和使用CMake进行项目编译。在CMakeLists.txt文件中添加路径的方法有很多种,这里我将为你提供一个详细的步骤来帮助你在D盘创建项目并添加所需的文件。

1. 首先,在D盘创建一个新的项目文件夹,例如:D:/MyProject。

2. 在D:/MyProject文件夹中创建以下文件和文件夹结构:
   ```
   MyProject/
   ├── CMakeLists.txt
   ├── main
   │   ├── CMakeLists.txt
   │   ├── app_main.c
   │   └── app_main.h
   ```

3. 编辑D:/MyProject/CMakeLists.txt文件,添加以下内容:
   ```cmake
   cmake_minimum_required(3.5)
   project(MyProject)

   set(PROJECT_VER "1.0.0")
   set(PROJECT_NAME "MyProject")

   include($ENV{IDF_PATH}/tools/cmake/project.cmake)
   project(${PROJECT_NAME})

   set(EXTRA_COMPONENT_DIRS "D:/MyProject/components") # 添加自定义组件路径
   ```

4. 编辑D:/MyProject/main/CMakeLists.txt文件,添加以下内容:
   ```cmake
   idf_component_register(SRCS "app_main.c"
                         INCLUDE_DIRS "."
                         REQUIRES "driver"
                         PRIV_REQUIRES "esp_event_loop"
                        )

   target_compile_definitions(${COMPONENT_LIB} PRIVATE
     -DAPP_MAIN_VERSION="${PROJECT_VER}"
     )
   ```

5. 现在你可以在D:/MyProject/main文件夹中添加你的C文件和H文件。例如,你可以添加一个名为app_main.c的C文件和一个名为app_main.h的头文件。

6. 接下来,打开命令行工具,导航到D:/MyProject文件夹,并执行以下命令:
   ```
   mkdir build
   cd build
   cmake ..
   ```

7. 如果一切顺利,CMake将生成Makefile文件。现在你可以使用以下命令进行编译:
   ```
   make
   ```

8. 编译完成后,你可以在D:/MyProject/build/flasher_args.json文件中找到烧录参数,然后使用esptool.py或其他烧录工具将程序烧录到ESP32设备。

通过以上步骤,你应该可以在D盘创建一个新的项目,并在CMakeLists.txt文件中添加所需的路径。希望这对你有所帮助!如果你在操作过程中遇到任何问题,请随时提问。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分