在使用 Code Composer Studio (CCS) 开发 DSP 或 ARM 工程时,经常会遇到这样一个问题:
在 A 电脑上能正常编译的工程,拷贝到 B 电脑上后就报错。
错误的原因通常是 工程使用了绝对路径,而不同电脑上的文件路径不一致,比如:
这样,每次换电脑或者更换目录,就得重新修改路径,非常麻烦。
解决办法就是——统一使用相对路径。
1. 常见的路径宏
CCS 提供了以下常用宏,可以帮助你写相对路径:
${workspace_loc} :
当前 CCS 工作区(workspace)路径。
依赖工作区 (Workspace):它的前提是工程必须在某个 CCS Workspace 下,才能通过${ProjName} 解析出工程路径。
适用场景:如果你有多个工程放在同一个 Workspace,并且它们之间需要共享一些公共的 include/lib,可以用这种写法。
${ProjName} :当前工程名称路径,更独立,不依赖 Workspace 的路径。
${PROJECT_ROOT} :当前工程的根目录。
独立于 Workspace:它直接指向工程自身所在目录,不依赖 Workspace 的路径。
可移植性最好:无论工程在哪个 Workspace 下,甚至把工程单独 copy 给别人(别人 import 工程),这个路径依然有效。
推荐用法:工程自己的 include/、lib/ 目录建议用这种写法。
${CG_TOOL_ROOT} :当前工程使用的编译器 (Code Generation Tools) 的安装目录。
示例:
本地工程路径
本地编译器安装路径
${workspace_loc:/${ProjName}/include}
//表示D:\CCSWorkspace\ProjectTest\include
${PROJECT_ROOT}/include
//表示D:/CCSWorkspace/ProjectTest/include
${PROJECT_ROOT}/lib
//表示D:/CCSWorkspace/ProjectTest/lib
${CG_TOOL_ROOT}/include
//表示C:/Software/CCS1230/ccs/tools/compiler\ti-cgt-c2000_22.6.0.LTS/includ
${CG_TOOL_ROOT}/lib
//表示C:/Software/CCS1230/ccs/tools/compiler\ti-cgt-c2000_22.6.0.LTS/lib
2. 修改 include 路径
2.1 右键工程 → Properties
2.2 进入 Build → Compiler → Include Options
2.3 在 Add dir to #include search path 中添加:
${PROJECT_ROOT}/include
${workspace_loc:/${ProjName}/include}
${CG_TOOL_ROOT}/include
这样,头文件搜索顺序就是:
先找工程目录下的 include
再找工作区路径
最后找编译器默认的 include
3. 修改 lib 路径
3.1 右键工程 → Properties
3.2 进入Build →
Linker →
File Search Path
3.3 在 Add <dir> to library search path (--search_path, -i) 里添加:
${PROJECT_ROOT}/lib
${workspace_loc:/${ProjName}/lib}
${CG_TOOL_ROOT}/lib
(注意:如果工程目录下没有lib文件,只需要添加${CG_TOOL_ROOT}/lib 即可)
4. 推荐的工程目录结构
为了更方便使用相对路径,可以在工程下保持统一的结构:
ProjectName/
│── include/ # 头文件
│── lib/ # 库文件
│── source/ # 源代码
│── linker.cmd # 链接命令文件
│── .project # CCS 工程文件
这样只需写:
${PROJECT_ROOT}/include
${PROJECT_ROOT}/lib
即可完成配置。
5. 总结
绝对路径 → 只能在本机使用,不利于分享
相对路径(推荐) → 通过 ${PROJECT_ROOT}、${workspace_loc} 等宏来配置
lib / include 建议放在工程目录内,统一管理,减少依赖
这样设置后,你的 CCS 工程就可以在任何电脑上直接编译,无需修改路径配置,大大提升了可移植性和可维护性。