每次都用Visual Studio编译程序,实际上占用了大量内存。所以我在可视化平台上集成了MSVC的编译工具链。
使用 cl.exe 编译工具,分为 编译、链接两个过程。
编译时候的指令
链接时候的指令
掌握这个之后,就可以开始设置编译脚本。
第一步, 编译环境命令。
目前有2个脚本都可以使用:
第一种: C:Program Files (x86)Microsoft Visual Studio2019CommunityCommon7ToolsV
第二种: C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvar
运行脚本之前,先运行 该环境命令。
第二步:
拿到需要编译的代码,合成一个命令文件:
合成一个脚本
第三步:
运行该命令,执行调用,得到 结果。
使用可视化界面,如下:
可视化的插件界面
运行结果
运行脚本的临时文件
完整的命令如下:
call "C:Program Files (x86)Microsoft Visual Studio2019CommunityVCAuxiliaryBuildvcvar"
cl "C:/AllInOne/KPlatform/tem; /Fo"C:/AllInOne/KPlatform/temp/" /I"C:/AllInOne/VS19/include" /I"C:/AllInOne/klibcpp" /permissive- /D "NDEBUG" /D "_UNICODE" /D "UNICODE" /GS /GL /W3 /Gy /Zc:wchar_t /Gm- /O2 /sdl /Zc:inline /fp:precise /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /MD /FC /EHsc /nologo /diagnostics:column /link /OUT:"C:/AllInOne/KPlatform/tem; /LIBPATH:"C:/AllInOne/VS19/lib" /MANIFEST /NXCOMPAT /DYNAMICBASE /MACHINE:X64 /OPT:REF /INCREMENTAL:NO /MANIFESTUAC:NO /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO "kernel32.lib" "u; "gdi32.lib" "win; "comdlg32.lib" "adva; "; "ole32.lib" "oleau; "uuid.lib" "odbc32.lib" "odbcc;
其中 输出目录、输出文件是根据需要自动生成。
其中,使用了如下的组件:
1.Boo 库,实现子进程调用。
子进程调用
2.使用 QsciScintilla 进行代码的语法提示,一些代码如下
#include <Qsci;
#include <QSci;
#include <Qsci;
/************************************************************************/
/*
*/
/************************************************************************/
QsciScintilla* codeEdit = new QsciScintilla;
QPlainTextEdit* resultEdit = new QPlainTextEdit;
QSplitter* spliter = new QSplitter(Qt::Vertical);
QSharedPointer<QsciLexer> lexer = QSharedPointer<QsciLexer>(new QsciLexerCPP);
codeEdit->setLexer());
codeEdit->setMarginWidth(0, "0000");
codeEdit->setMarginLineNumbers(0, true);
codeEdit->setMarginType(0, QsciScintilla::NumberMargin);//设置标号为0的页边显示行号
codeEdit->setFolding(QsciScintilla::BoxedTreeFoldStyle);//折叠样式
codeEdit->setAutoCompletionSource(QsciScintilla::AcsAll);//自动补全。对于所有Ascii字符
codeEdit->setAutoCompletionThreshold(2);//设置每输入一个字符就会出现自动补全的提示
codeEdit->setFoldMarginColors(Qt::gray, Qt::lightGray);//折叠栏颜色
codeEdit->setTabWidth(4);
codeEdit->setBraceMatching(QsciScintilla::SloppyBraceMatch);
codeEdit->setText("#include <iostream>n"
"using namespace std;nn"
"int main(char** argv, int argc)n"
"{n"
" cout << "hello,world!" << endl;n"
"}"
花了2天时间,整明白了 boo 的用法,学会了 QsciScintilla 库,然后 阅读了 MSVC编译相关细节,还是有不少收获。
1.《acs exe专题之打造简单的VC开发环境》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《acs exe专题之打造简单的VC开发环境》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/167764.html