我喜欢Qt Creator开发环境,现在需要使用Keil C51编译器/工具编译一些C代码。
可以将Qt Creator IDE与Keil C51工具一起使用吗?有人能详细描述一下如何设置吗?
或者-是另一个可以与Qt Creator集成的8052芯片编译器吗?
发布于 2018-06-12 20:01:09
我可以确认,我可以在C51中使用QT。
环境
我使用QT作为编辑器。和Keil C51作为编译器。我用纯C(不是C++)为STC微控制器写了一个程序。
TLDR
我使用Windows批处理文件编译工作目录中的所有*.c文件,然后将其链接到一个十六进制文件中。然后,我设置QT (Projects、->、Build Settings、-> Build Steps、-> Custom),以便在构建阶段使用此批处理(不要忘记正确设置工作目录)。
如何获取所需的批处理文件
简单的方法
Keil可以为特定项目生成批处理(参见Project->Options for Target->Output->Create batch File)。然后在QT中使用该文件,如上所述。
这种方式的主要缺陷是-当您更改项目配置或向项目添加新文件时,您需要从Keil重新生成批处理。
更好的方式
使用从Keil生成的批处理,我编写了自己的Bath,它没有上述缺陷。
更好的方式
我猜使用Makefile比使用批处理更好,因为它给了QT更多的控制和关于编译过程中错误的信息。但我现在还没有“现成”的例子。
批处理文件描述
简而言之,这个批次:
*.c文件设置设置和directories*.obj列表并调用链接器以获取二进制格式的固件映像将获得的映像转换为十六进制格式的列表:
REM "Folders"
SET C51FLDR=d:\Keil\C51
SET OUTFLDR=.\Objects
SET LSTFLDR=.\Listings
SET HEXNAME=PREP_FIRMWARE
SET C51INC=%C51FLDR%\Inc;%C51FLDR%\Inc\STC
SET C51LIB=%C51FLDR%\Lib
REM "Variables"
SET C51EXE=%C51FLDR%\BIN\C51.EXE
SET C51LNK=%C51FLDR%\BIN\BL51.EXE
SET C51HEX=%C51FLDR%\BIN\OH51.EXE
set OBJLIST=
REM "Defines"
SET CPU_TYPE=STC15W408S
SET CPU_VENDOR=STC
SET UV2_TARGET=Target 1
SET CPU_XTAL=0x02160EC0
SET SETTINGS="COMPACT ROM(COMPACT) OPTIMIZE (9,SIZE) BROWSE DEBUG OBJECTEXTEND LISTINCLUDE SYMBOLS TABS (2)"
echo ===================== Compile =====================
for %%f in (*.c) do (
echo %errorlevel%
setlocal EnableDelayedExpansion
%C51EXE% %%f %SETTINGS% "PRINT(%LSTFLDR%\%%~nf.lst) OBJECT(%OUTFLDR%\%%~nf.obj)"
if !errorlevel! neq 0 exit /b !errorlevel!
)
echo ===================== Link =====================
call :obj_list
echo %OBJLIST%
%C51LNK% %OBJLIST% TO "%OUTFLDR%\%HEXNAME%" PRINT("%LSTFLDR%\%HEXNAME%.m51") RAMSIZE(256)
echo %errorlevel%
if %errorlevel% GTR 1 exit /b %errorlevel%
echo ===================== Hex =====================
%C51HEX% "%OUTFLDR%\%HEXNAME%"
if %errorlevel% neq 0 exit /b %errorlevel%
echo ==========================================
echo Build Success
echo ==========================================
goto :eof
:obj_list
for %%f in (.\Objects\*.obj) DO call :concat %%f
set OBJLIST=%OBJLIST:~0,-1%
goto :eof
:concat
set OBJLIST=%OBJLIST%"%1",
goto :eof发布于 2021-01-19 12:27:28
现在,可以将QtCreator与Qbs一起使用(从1.15开始)。此外,还可以将VSCode与Qbs扩展一起使用。
https://stackoverflow.com/questions/49723130
复制相似问题