CCS——將工程中的 include / lib 修改為相對路徑,方便工程分享

在使用 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 工程就可以在任何電腦上直接編譯,無需修改路徑配置,大大提升了可移植性和可維護性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98047.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java解析網絡大端、小端解析方法

文章目錄一、背景介紹二、說明核心概念&#xff1a;什么是字節序&#xff08;Endianness&#xff09;&#xff1f;大端字節序 (Big-Endian)小端字節序 (Little-Endian)三、不同解析方式介紹一、背景介紹 中轉臺通過SNMP協議V1\V2上報中轉臺IP&#xff0c;然后程序解析入庫&…

【數據分享】土地利用矢量shp數據分享-甘肅

今天要說明數據就是土地利用shp數據分享-甘肅。數據介紹▲ 1km土地利用數據&#xff08;2020年&#xff09;▲ 土地利用數據&#xff08;2025年&#xff09;▲土地利用數據&#xff08;2018年&#xff09;▲ 30m土地利用數據&#xff08;2023年&#xff09;▲ 公路鐵路道路河流…

java log相關:Log4J、Log4J2、LogBack,SLF4J

目錄測試maven依賴logback.xml測試主程序測試輸出arthas查看logger總結使用參考文檔測試 maven依賴 <dependencies><!-- SLF4J API --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>…

AES加密算法詳細加密步驟代碼實現--身份證號碼加解密系統

系統概述 本系統是一個基于AES-256-CBC加密算法的身份證號碼加解密工具&#xff08;手搓底層步驟&#xff09;&#xff0c;針對的是上一篇文章對的AES加密原理的講解&#xff0c;雖說是演示&#xff0c;但功能完善&#xff0c;可單獨提供接口給項目調用&#xff0c;采用Python…

LangChain: Models, Prompts 模型和提示詞

獲取openapikey #!pip install python-dotenv #!pip install openai import osimport openai ? from dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env file openai.api_key os.environ[OPENAI_API_KEY] # account for deprecat…

ACMESSL自動續簽教程

目錄 1、選擇申請證書 ?編輯2、選擇CA機構 ?編輯3、選擇自動驗簽 ?編輯4、證書續簽設置 5、自動發布設置 本教程實現ACMESSL自動續簽&#xff0c;請按照此教程實現。 1、選擇申請證書 點擊快捷入口或者訂單或證書列表中的【創建證書】按鈕&#xff1a; 2、選擇CA機構 …

基于飛算JavaAI的在線圖書借閱平臺設計實現

項目概述與需求分析 1.1 項目背景與意義 隨著數字化時代的快速發展&#xff0c;傳統圖書館管理模式已無法滿足現代讀者的需求。在線圖書借閱平臺通過互聯網技術將圖書資源數字化&#xff0c;為讀者提供便捷的檢索、借閱和管理服務&#xff0c;有效解決了傳統圖書館開放時間有…

通過API接口管理企業微信通訊錄案例

1.開始前需要登錄企業微信管理員后臺&#xff0c;開啟通訊錄同步&#xff0c;同時添加企業可信IP地址&#xff0c;記錄下Secret信息和企業ID&#xff0c;后面的程序會用到這兩個參數。2.下面是用python寫的創建企業微信賬號的具體案例。#!/usr/bin/env python3 # -*- coding: u…

硬件開發_基于物聯網的自動售賣機系統

一.系統概述 物聯網自動售賣機系統的主要功能如下&#xff1a; 核心控制器&#xff1a;采用STM32單片機作為系統核心&#xff0c;負責整體數據處理和各設備的統一控制。商品選擇&#xff1a;支持語音識別及按鍵方式&#xff0c;方便用戶在售賣機內選擇商品。語音播報&#xff1…

AGENTS.md: AI編碼代理的開放標準

每個項目都有一個 README.md 文件供人類閱讀。但隨著 AI 編碼代理和 AI 輔助開發的興起,我們需要一個新標準:AGENTS.md。這個 Markdown 文件定義了代理如何構建、測試和協作。 這就是 AGENTS.md 的作用。 它是一個簡單的 Markdown 文件,告訴 AI 助手如何在你的項目中操作:…

如何解決 OutOfMemoryError 內存溢出 —— 原因、定位與解決方案

網羅開發&#xff08;小紅書、快手、視頻號同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企業從事人工智能項目研發管理工作&#xff0c;平時熱衷于分享各種編程領域的軟硬技能知識以及前沿技術&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…

阿里云服務器配置ssl-docker nginx

# 切換到您當前的目錄 cd /AAAAAAAAAAAA# 創建存放nginx配置、證書和日志的目錄結構 mkdir -p nginx-config/conf.d nginx-ssl nginx-logs# 為掛載做準備&#xff0c;您可能需要將當前dist目錄內容移動到新的html目錄 # 首先查看當前dist目錄的內容 ls -la dist/# 如果html目錄…

2025全球生成式引擎優化(GEO)服務商發展趨勢與企業賦能白皮書

引言&#xff1a;人工智能技術的迅猛發展&#xff0c;特別是在生成式AI領域的突破&#xff0c;正以前所未有的力量重塑商業世界的競爭格局。對于尋求提升在線可見性、優化品牌互動及實現可持續增長的企業而言&#xff0c;生成式引擎優化&#xff08;GEO&#xff09;已然成為數字…

海康威視工業相機SDK開發實戰:使用C/C++實現軟件觸發圖像采集(含詳細中文注釋代碼)

一、前言 在機器視覺、自動化檢測、智能制造等領域&#xff0c;工業相機是獲取圖像數據的核心設備。海康威視作為國內領先的機器視覺廠商&#xff0c;其工業相機產品線豐富&#xff0c;廣泛應用于各類工業場景。 本文將帶你從零開始&#xff0c;使用 海康MVS SDK&#xff08;Ma…

Modbus RTU 協議介紹

Modbus RTU 協議介紹 異步串行傳輸方式&#xff0c;采用二進制格式&#xff0c;適用于串行通訊&#xff08;如RS-485&#xff09;&#xff0c;效率高&#xff0c;是工業現場的主流選擇。 主站是Master&#xff0c;從站是Slave。 Modbus RTU 協議格式 幀結構 地址碼&#xf…

TCP/IP函數——sendmsg

sendmsg() 是 POSIX 標準中一個高級套接字發送函數,屬于系統調用(由操作系統內核實現),定義在 <sys/socket.h> 頭文件中。它的核心特點是支持復雜消息結構,不僅能發送常規數據,還能附加控制信息(如輔助數據、IP 選項等),適用于 TCP、UDP 等多種協議,功能比 sen…

運動控制中的插值運動(插補運動):原理、實現與應用

在自動化設備中,從起點到終點的精準軌跡控制是核心需求。當目標軌跡是直線、圓弧或復雜曲線時,僅通過離散的目標點無法實現平滑運動,這就需要插值運動(Interpolation Motion)技術 —— 通過控制算法在已知路徑點之間計算出連續的中間點,使運動部件沿預定軌跡平滑移動。本…

GMT——用于人形全身控制的通用運動跟蹤:兩階段師生訓練框架下,全身基于單一策略,且自適應采樣、MoE架構

前言 如此文《KungfuBot——基于物理約束和自適應運動追蹤的人形全身控制PBHC&#xff0c;用于學習打拳或跳舞(即RL下的動作模仿和運控)》的開頭所說 如此&#xff0c;便關注到最新出來的三個工作 第一個是GMT: General Motion Tracking for Humanoid Whole-Body Control第二個…

matlab版本粒子群算法(PSO)在路徑規劃中的應用

基于粒子群優化&#xff08;PSO&#xff09;算法的路徑規劃 MATLAB代碼實現 1. 初始化環境和參數 % 初始化環境參數 mapSize [10, 10]; % 地圖大小 startPoint [1, 1]; % 起點 endPoint [9, 9]; % 終點 obstacles [3, 3; 5, 5; 7, 7]; % 障礙物位置% PSO參數 numParticles …

Go語言面試:傳值與傳引用的區別及選擇指南

在Go語言中&#xff0c;函數參數的傳遞方式有兩種&#xff1a;傳值&#xff08;pass-by-value&#xff09;和傳引用&#xff08;pass-by-reference&#xff09;。理解這兩種方式的區別及其適用場景&#xff0c;是成為Go語言開發高手的必備技能。本文將深入探討Go語言中傳值與傳…