0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

windows平臺(tái)編譯命令行參數(shù)超過(guò)32K報(bào)錯(cuò)規(guī)避辦法

冬至子 ? 來(lái)源:還沒想好 ? 作者:還沒想好 ? 2023-08-10 17:04 ? 次閱讀

打開工程目錄下 SConstruct 文件:

在 objs = PrepareBuilding(env, RTT_ROOT) 這一行后面添加如下代碼

prepare building environment

objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)

set spawn

def ourspawn(sh, escape, cmd, args, e):
filename = str(uuid.uuid4())
newargs = ' '.join(args[1:])
cmdline = cmd + " " + newargs
if (len(cmdline) > 16 * 1024):
f = open(filename, 'w')
f.write(' '.join(args[1:]).replace('', '/'))
f.close()

exec

cmdline = cmd + " @" + filename
proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, shell = False, env = e)
data, err = proc.communicate()
rv = proc.wait()
def res_output(_output, _s):
if len(_s):
if isinstance(_s, str):
_output(_s)
elif isinstance(_s, bytes):
_output(str(_s, 'UTF-8'))
else:
_output(str(_s))
res_output(sys.stderr.write, err)
res_output(sys.stdout.write, data)
if os.path.isfile(filename):
os.remove(filename)
return rv
if platform.system() == 'Windows':
env['SPAWN'] = ourspawn

在文件頭部導(dǎo)入相應(yīng)的模塊

import subprocess
import platform
import uuid

將命令行參數(shù)寫入文件中,讓 gcc 工具鏈讀取文件編譯或鏈接。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3556

    瀏覽量

    89068
  • CMD命令
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    8330
  • gcc編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    3408
  • RTThread
    +關(guān)注

    關(guān)注

    8

    文章

    132

    瀏覽量

    40953
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙ArkUI-X跨平臺(tái)開發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項(xiàng)目跨平臺(tái)應(yīng)用開發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺(tái)運(yùn)行,用于構(gòu)建OpenHarmony/HarmonyOS
    的頭像 發(fā)表于 05-21 17:39 ?1913次閱讀
    鴻蒙ArkUI-X跨<b class='flag-5'>平臺(tái)</b>開發(fā):【<b class='flag-5'>命令行</b>工具(ACE Tools)】

    ISE的命令行編譯

    幾個(gè)同名的空文件進(jìn)去,結(jié)果是失敗,會(huì)有很多bug。請(qǐng)問(wèn)怎么解決這個(gè)問(wèn)題,即在clearup project files后或者是初次編譯時(shí)也能去使用這個(gè)命令行文件進(jìn)行操作?。
    發(fā)表于 07-04 10:02

    cmd網(wǎng)絡(luò)經(jīng)典命令行

    cmd網(wǎng)絡(luò)經(jīng)典命令行:
    發(fā)表于 06-11 15:17 ?36次下載
    cmd網(wǎng)絡(luò)經(jīng)典<b class='flag-5'>命令行</b>

    如何獲取其它程序的命令行參數(shù)

    開發(fā)環(huán)境:VC6 Windows XP 測(cè)試環(huán)境:WindowsXP 我們都知道,在程序里獲取命令行參數(shù)很簡(jiǎn)單,WinMain函數(shù)會(huì)以參數(shù)的形式傳遞給我們,或者可以調(diào)用API Ge
    發(fā)表于 10-14 09:24 ?1次下載

    C語(yǔ)言入門教程-命令行參數(shù)

    命令行參數(shù) 在C中,獲取用戶輸入的命令行參數(shù)是很方便的。程序的主函數(shù)會(huì)接受一個(gè)argv參數(shù)。有許多高級(jí)的庫(kù)函數(shù)都會(huì)用到argv結(jié)構(gòu),所以了
    發(fā)表于 07-29 14:22 ?2618次閱讀

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對(duì)于大多用戶來(lái)說(shuō)往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2308次閱讀

    CMD的命令行高級(jí)教程

    CMD的命令行高級(jí)教程
    發(fā)表于 10-24 08:31 ?30次下載
    CMD的<b class='flag-5'>命令行</b>高級(jí)教程

    uvm命令行傳遞參數(shù)的小技巧

    當(dāng)我們?cè)趧?chuàng)建動(dòng)態(tài)仿真case時(shí),使用命令行參數(shù)可以非常方便地控制DUT和TB的行為,比如配置寄存器、控制激勵(lì)的發(fā)送數(shù)量、打開或關(guān)閉某些scoreboard等。
    的頭像 發(fā)表于 08-19 11:53 ?5703次閱讀

    K210命令行開發(fā)環(huán)境搭建指南

    K210命令行開發(fā)環(huán)境搭建指南.pdf
    發(fā)表于 11-07 11:58 ?5次下載

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    Fcoder從命令行批量轉(zhuǎn)換為TIFF

    何應(yīng)用程序中,讓您只需一個(gè)命令即可自動(dòng)執(zhí)行重復(fù)的轉(zhuǎn)換任務(wù)。 命令行語(yǔ)法和用法 2TIFF圖像轉(zhuǎn)換器軟件可以從Windows 命令提示符、PowerShell或任何其他
    的頭像 發(fā)表于 05-22 14:13 ?831次閱讀
    Fcoder從<b class='flag-5'>命令行</b>批量轉(zhuǎn)換為TIFF

    STM32通過(guò)命令行編譯和下載keil和IAR工程的方法

    STM32通過(guò)命令行編譯和下載keil和IAR工程的方法
    的頭像 發(fā)表于 10-31 17:01 ?1579次閱讀
    STM32通過(guò)<b class='flag-5'>命令行</b><b class='flag-5'>編譯</b>和下載keil和IAR工程的方法

    linux切換到命令行模式

    在Linux中,可以通過(guò)以下步驟切換到命令行模式: 打開終端。可以在應(yīng)用菜單中找到終端或命令行終端。 在終端中輸入命令“exit”或“l(fā)ogout”,然后按回車鍵。 系統(tǒng)會(huì)提示您輸入管理員密碼。輸入
    的頭像 發(fā)表于 11-13 16:47 ?1827次閱讀

    idea如何輸入命令行參數(shù)

    在許多軟件開發(fā)和系統(tǒng)管理的任務(wù)中,我們經(jīng)常需要向應(yīng)用程序傳遞命令行參數(shù)命令行參數(shù)是在運(yùn)行時(shí)傳遞給程序的值,用于指定程序的行為和配置選項(xiàng)。本文將詳細(xì)介紹如何在不同的編程語(yǔ)言和操作系統(tǒng)中
    的頭像 發(fā)表于 12-06 15:01 ?1204次閱讀

    HarmonyOS開發(fā):【基于命令行(安裝庫(kù)和工具集)】

    使用命令行進(jìn)行設(shè)備開發(fā)時(shí),可以通過(guò)以下步驟安裝編譯OpenHarmony需要的庫(kù)和工具。
    的頭像 發(fā)表于 04-25 21:03 ?460次閱讀
    HarmonyOS開發(fā):【基于<b class='flag-5'>命令行</b>(安裝庫(kù)和工具集)】