NXP MCU 技术论坛
直播中

云中云

8年用户 924经验值
私信 关注
[问答]

如何利用LPCXpresso IDE创建和链接到图书馆项目?

LPCXpresso IDE 提供了用于创建静态库项目的项目向导,然后您的工作区内的其他项目可以使用这些项目。此外,它还提供了一种简单的机制,用于创建从应用程序项目到静态库项目的链接。

创建静态库项目


用于创建 C/C++ 静态库项目的项目向导通过标准项目向导提供,可通过以下方式访问
快速启动面板 -> 新建项目为所选 MCU 系列选择 C/C++ 库项目向导将显示一个或多个选项屏幕。

单击完成后,您的库项目将被创建,其中包含一个带有您选择的名称(默认为 src)的源子目录,以及一个可选的用于存储头文件的 inc 子目录。项目的顶层还将有一个liblinks.xml放在其中(请参阅下文了解如何使用它)。

创建库项目的链接


使用库项目需要在您希望从中使用库项目的应用程序项目中设置许多配置选项。尽管可以手动设置,但 LPCXpresso IDE 还提供了一种更加自动化的机制,用于创建从应用程序项目到静态库项目的链接。这是通过“智能更新”向导完成的。

当创建一个新的静态库项目时,将在库项目的顶层创建一个名为liblinks.xml的文件。如果在 Project Explorer 视图中右键单击此文件,则可以选择:
智能更新 -> 智能更新
这将运行智能更新向导。这将弹出一个对话框,列出当前工作区中的所有项目。只需勾选您要链接到此特定静态库项目的那些项目。

注意:将智能更新选项与liblinks.xml文件一起使用假定库项目和您链接它的应用程序项目都具有两个标准的调试和发布构建配置。如果不是这种情况,那么您将需要如下所述手动设置。

手动创建指向库项目的链接


为了使用库项目,您需要向项目添加适当的包含路径和库。您还需要为每个构建配置(例如,调试或发布)执行此操作。这就是将智能更新选项与liblinks.xml文件一起使用的结果。但有时您可能希望或需要手动执行此操作(例如,如果您的库项目没有liblinks.xml文件)。

首先,确保库项目与您的应用程序项目存在于同一工作区中。还要确保项目的当前构建配置是调试。然后...

  • 打开项目属性。有多种方法可以做到这一点。例如,确保 Project 在 Project Explorer 视图中突出显示,然后打开菜单“Project -> Properties”。
  • 在“属性”窗口的左侧列表中,打开“ C/C++ Build ”并选择“设置”,然后选择“工具设置”选项卡。
  • 现在选择“ MCU C Compiler - Directories ”(或“MCU C Compiler - Includes”,取决于工具版本)并单击“ Add ”图标。
  • 现在选择“工作区”,然后导航到包含任何包含文件的库项目中的目录。
  • 如果库项目中有多个包含目录,请重复步骤 4)。例如,如果您要添加指向库 LPC13_Lib 的链接,则包含路径中需要显示的是“ ${workspace_loc:/LPC13xx_Lib/inc} ”。
  • 如果您的项目包含任何汇编程序文件,请选择“ MCU Assembler - General ”并在那里添加包含路径。
  • 添加完所有包含路径后,更改为属性窗口顶部下拉列表中的其他构建配置(调试 -> 发布),然后重复步骤 4)、5) 和 6)。
  • 将 Build Configuration 改回Debug
  • 选择“ MCU Linker - Libraries ”并点击“ Library search path (-L) Add ”图标。
  • 现在选择“ Workspace ”,然后导航到库项目中的“ Debug ”目录。例如,如果您要添加指向库 LPC13xx_Lib 的链接,则库搜索路径中需要显示的是“ ${workspace_loc:/LPC13xx_Lib/Debug} ”。
  • 现在点击“ Libraries (-l) Add ”图标。输入库的名称。这将是它的项目名称,例如“ LPC13xx_Lib ”。(您不需要输入引号。)
  • 现在更改为属性窗口顶部下拉列表中的其他构建配置(调试 -> 发布),并重复步骤 8)、9) 和 10)。请注意,这次在步骤 8) 中,您需要导航到库项目中的“ Release ”目录。因此,如果您要将指向LPC13xx_Lib 的链接添加到您的项目,那么需要出现在库搜索路径上的内容将是“ ${workspace_loc:/LPC13xx_Lib/Release} ”。
  • 现在您需要在“属性”窗口的左侧列表中打开“ C/C++ General -> Paths and Symbols ”,然后打开“ References ”选项卡。为您的项目使用的库项目勾选相应的框。
  • 最后,您需要将应用程序项目中的项目引用添加到库项目中。为此,请在“属性”窗口的左侧列表中选择“项目引用”,然后勾选相应的框。

请注意,如果您的应用程序项目使用多个库项目,则需要为每个库项目重复上述顺序。

关于库命名的注释

GNU 工具要求将库命名为 liblibrary_name.a。但是,当您链接到一个库时,您只使用 library_name。例如,如果您有一个名为 libmylib.a 的库,您可以链接到 mylib。

                              

更多回帖

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