1. Vitis静态库构建报错问题解析
在Vivado 2019.2版本之后,Xilinx将传统的SDK开发环境替换为全新的Vitis统一开发平台。这个转变对于长期使用SDK的FPGA开发者来说确实带来了不小的适应成本。我在实际项目中最常遇到的痛点就是静态库(Static Library)的构建问题——当你尝试独立创建并编译一个Lib项目时,系统会抛出"No domains specified"的错误提示。
这个问题的本质在于Vitis采用了全新的项目管理架构。与SDK不同,Vitis要求库项目必须作为应用程序的附属存在,不能独立于应用项目而创建。这种设计理念源于Vitis的"平台(Platform)+应用(Application)"分层模型。平台层包含硬件定义(XSA文件),应用层则包含软件实现。库项目作为软件组件的一部分,必须挂载在某个具体应用下才能获得完整的编译上下文环境。
关键理解:Vitis中的domain指的是硬件平台的执行域(如PS端的ARM核或PL端的MicroBlaze),库项目需要明确知道它将被哪个处理器核调用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 静态库正确创建流程详解
2.1 创建基础应用工程
首先在Vitis中新建一个Application Project:
- 菜单选择File > New > Application Project
- 在向导中选择或创建平台工程(Platform Project)
- 输入项目名称(如
app_demo) - 选择处理器类型(如ps7_cortexa9_0)
- 模板选择"Empty Application"
2.2 添加库项目
关键步骤来了——必须在已有应用工程下添加库项目:
- 在Project Explorer中右键点击刚创建的应用工程
- 选择New > Library Project
- 在弹出的对话框中:
- 确认"Add sub-project to application"已勾选
- 输入库名称(如
my_lib) - 选择库类型为Static Library
- 点击Finish完成创建
此时项目结构应该呈现为:
code复制app_demo [Application]
├── src
└── my_lib [Static L
