发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128788.html原文链接:https://javaforall.cn
文章目录 拷贝lib的jar,配置可执行main函数 拷贝lib的jar <plugin> <artifactId>maven-dependency-plugin</artifactId> /excludeTransitive> </configuration> </execution> </executions> </plugin> 配置可执行
前言Golang是一种强类型、编译型、跨平台的编程语言,相同代码在不同平台上都可以编译出对应的可执行程序。今天就来简单介绍一下如何使用命令编译出可执行程序,本文以windows平台为例进行介绍。 正文方法一、熟悉Golang语言的小伙伴一定都知道,每个Golang工程中都有一个main.go文件,这是一个入口文件,所以一般都使用如下命令编译可执行程序:go build main.go如果程序代码没有语法错误的话 ,这条命令执行完毕后会生成main.exe的可执行程序。 方法三、除了上面的两种方法,其实,我们还可以指定可执行文件的名字,具体命令如下:go build -o test.exe这样生成的可执行文件的名字就是test.exe。 结尾好了,至此三种生成可执行程序的命令就介绍完了,注意,它们在mac OS和linux系统上也是同样适用的。我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表
\n"); return 0; } 现在我们将执行以下命令将源文件(hello.c)转化为可执行目标文件(hello): gcc -o hello hello.c 我们使用的是gcc编译器驱动程序完成的 执行这四个阶段的程序(预处理器、编译器、汇编器和链接器)一起构成了编译系统。 [二进制])->链接器(ld)->hello(可执行目标程序[二进制]) 预处理阶段。 预处理器(cpp)根据字符#开头的命令,修改原始的C程序。结果就得到了另外一个C程序,通常是以.i作为文件扩展名。 编译阶段。 编译器(ccl)将文本文件hello.i翻译成文本文件hello.s,它包含一个汇编语言程序。汇编程序是非常有用的,它位不同高级语言的不同编译器提供了通用的输出语言。 汇编阶段。
---- 目录 1.程序的翻译环境&2.执行环境 3.详解:程序的编译和链接(翻译环境) 4.预处理符号详解 4-1内置的预处理符号 5.预处理指令 5-1#define定义符号 5-2#define #和##宏的妙用 6-1# 6-2## 6-3带有副作用的宏参数 7.宏和函数的对比(蓝色标明考虑角度) 8.条件编译 9.预处理指令#include 10.面试题:宏实现offsetof ---- 1.程序的翻译环境&2.执行环境 C语言程序实现的两种环境: 第一步:翻译环境--使得源程序转换为机器可执行的机器指令 第二步:执行环境--实现可执行代码 3.详解:程序的编译和链接(翻译环境 ) 多个test.c文件,多个test.obj,生成一个test.exe 编译器介绍: 链接库:库文件里的库函数/第三方库 4.预处理符号详解 4-1内置的预处理符号 int 应用:stdio.h头文件中好多这种东西,你要看得懂 #define NUM 1 int main() { //#if-#else-#endif 分支的条件编译 #if 0 printf("
一个C语言的项目中可能有多个.c文件一起构建, 那么多个.c文件如何生成可执行程序的呢? 多个.c文件单独经过编译器,编译处理⽣成对应的⽬标⽂件。 注意: 在Windows环境下的目标文件的后缀是 .obj ,Linux环境下目标文件的后缀是 .o 多个⽬标⽂件和链接库⼀起经过链接器处理⽣成最终的可执行程序。 这个时候程序将使⽤⼀个运⾏时堆栈(stack),存储函数的局部变量和返回地址。程序同时也可以使⽤静态(static)内存,存储于静态内存中的变量在程序的整个执⾏过程⼀直保留他们的值。 终⽌程序。 总结 文本重点介绍了 C语言代码是怎么生成可执行程序的, 其中翻译环境主要有两大过程, 编译和链接, 编译主要分为三个过程, 分别为预处理, 编译和链接. 链接:通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。
关于PS2EXE PS2EXE是一个可以将PowerShell脚本编译为可执行程序的模块,在GUI和Ingo Karstein脚本的支持下,该模块能够生成真正的Windows可执行程序。 注意事项 有一些人可能会滥用PS2EXE来编译他的计算机病毒脚本,因此越来越多的病毒扫描程序会将使用PS2EXE创建的程序识别为恶意程序并将其删除。因此,希望大家不要将其用于恶意目的。 \target.exe 上述命令会将“source.ps1”编译成可执行程序target.exe,如果命令参数中忽略了“.\target.exe”的话,生成的文件将为“.\source.exe”。 位或64位代码 lcid = 编译可执行程序的位置ID STA或MTA = 单线程模式或多线程模式 noConsole = 生成的可执行文件为Windows应用程序,不带终端窗口 UNICODEEncoding 编译的可执行文件只会在提权上下文中执行 supportOS = 使用最新Windows版本的功能 virtualize = 激活应用程序虚拟化 longPaths = 启用长路径支持 项目地址 https
英特尔公司仍持续生产此CPU产品,直到2007年才停产 复现步骤 apt-get update apt-get upgrade -y apt-get install golang 更新安装完成之后,即可对所需要编译的应用进行编译
linuxgo env -w GOOS=linux然后正常go build即可再切换回windowsgo env -w GOARCH=amd64go env -w GOOS=windows又可以愉快的编译 exe可执行文件啦
问题背景: 平时开发很多的C/C++后台服务或者中间件,这些成果物以可执行的二进制程序或者以动态库、静态库的形式部署在线上。 一旦将该服务上线,出问题后一般都需要我们确定该程序的版本分支和版本号,下面介绍一种简单方法将程序的编译信息硬编译到二进制成果物中。 代码入口处include该头文件,同时将该宏赋值给const char*字符常量指针; 4. makefile编译之前进行123步骤,将获取到的编译信息编译到成果物的符号文件中; 5. 获取编译信息compile_info.sh的shell脚本位于Build文件夹下面: 先看下我本地程序目录结构,大致如下: ? compile_info.sh文件内容如下: ? 代码解释: 第1行:说明这是个shell脚本; 第2行:这就是我们要生成的文件,如果以前的老文件存在,则强制删除毕竟我们需要这次编译生成最细的编译信息; 第3行:获取当前编译时间并格式化; 第5行:运行
文章目录 一、下载 p7zip 源码 二、交叉编译 Android 中使用 7z 可执行程序 三、参考资料 一、下载 p7zip 源码 ---- 下载 7zip 源码 , 下载页面 https://sourceforge.net Android 中使用 7z 可执行程序 ---- 在 Android 中使用命令行进行压缩与解压缩操作 ; 可以使用命令行的场景 : 压缩解压缩过程可以使用命令行 , 全程不需要执行过程中的数据 , Android 平台上的可执行文件 , 必须是 ARM 架构的可执行程序 ; p7zip 源码中给出 Android 平台使用的源码 , 在 p7zip_16.02\CPP\ANDROID 目录下 ; 目录下 , 生成了可执行的 7zr 程序 ; 总共生成了 4 种 CPU 架构的可执行文件 ; 编译过程中其它生成文件如下图 : 编译时遇到的错误 : 【错误记录】Android Studio android_mk Application.mk 构建脚本 : https://developer.android.google.cn/ndk/guides/application_mk 博客资源 : 源码 , 编译后的可执行文件
文章目录 一、Android 平台运行的 cmd 程序类型 二、Android 平台运行的 cmd 程序编译选项 三、编译 Android 平台的 cmd 可执行程序 一、Android 平台运行的 cmd /Debug/$(TARGET_ARCH_ABI) # 指定编译结果是 Android 平台上的可执行文件 include $(BUILD_EXECUTABLE) 在上面需要根据自己的 NDK APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk clean 三、编译 Android 平台的 cmd 可执行程序 ---- 右键点击 解决方案 , 选择 " 仅用于项目 / 仅生成 remote " 选项 , 即可开始编译 cmd 可执行程序 ; 编译结果 : 1>------ 已启动生成: 项目: remote, 配置 1 个,失败 0 个,最新 0 个,跳过 0 个 ========== 在 Y:\002_WorkSpace\002_VS\MobileGameModify\Debug\x86 路径下生成 cmd 可执行程序
最近进行编译项目,但是项目中有很多可执行文件;每次编译起来比较费时,下面一组代码可以指定特定的编译目标进行编译,而不用编译所有目标; #! /bin/bash # 通过传递第一个参数,表示要编译的目标;由 --target rg 指定; if [[ "$1" == "-h" || "$1" == "--help" ]]; then echo "用法:传递一组编译目标用于指定特定目标:build.sh [编译目标1] [编译目标2]" exit; fi cmake -H.
IDEA 导出可执行的Jar 换了Idea后今天需要把项目打成 jar放到服务器上运行,稍微整理一下。 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185771.html原文链接:https://javaforall.cn
但python也不能落下,毕竟很多代码就是python写的,全部用nodejs复写成本太高了,所以掌握一下python的可执行程序打包方法还是有一定必要,至少先可以把python用起来,把有的功能打包给读者小伙伴的 这时会在工程目录的dist目录下,我们就可以看到打包好的可执行程序了。 用上面命令打包出来的可执行程序在启动运行时,会出现后台终端窗口,这时我们如果想要去掉这个终端,只需要在打包命令后面加上参数-w就可以了,即pyinstaller -F demo.py -w。 PyInstaller常用选项 -h,--help 查看该模块的帮助信息 -F,-onefile 产生单个的可执行文件 -D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本的可执行文件 -w,--windowed,--noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows
一、Python程序打包基础概念 1.1 为什么需要打包Python程序 Python作为解释型语言,源代码默认以.py文件形式存在。 将Python程序打包成可执行文件具有以下优势: 保护源代码不被直接查看 便于在没有Python环境的机器上运行 简化部署流程 提高终端用户使用便利性 1.2 主流打包工具对比 工具名称支持平台打包方式文件大小启动速度PyInstallerWin/Lin/Mac单文件/目录较大较慢cx_FreezeWin/Lin/Mac目录中等中等Py2exeWindows目录较小较快NuitkaWin/Lin/Mac编译为二进制最小最快 level="requireAdministrator" uiAccess="false"/> 3.2 Linux/macOS注意事项 动态链接库:处理.so/.dylib依赖 文件权限:确保可执行权限 实现简单的HTTP版本检查+下载更新逻辑 结合打包工具实现增量更新 六、安全加固措施 代码混淆:使用pyarmor等工具 数字签名:购买代码签名证书 反逆向工程:结合Nuitka编译关键模块
但python也不能落下,毕竟很多代码就是python写的,全部用nodejs复写成本太高了,所以掌握一下python的可执行程序打包方法还是有一定必要,至少先可以把python用起来,把有的功能打包给读者小伙伴的 这时会在工程目录的dist目录下,我们就可以看到打包好的可执行程序了。 用上面命令打包出来的可执行程序在启动运行时,会出现后台终端窗口,这时我们如果想要去掉这个终端,只需要在打包命令后面加上参数-w就可以了,即pyinstaller -F demo.py -w。 PyInstaller常用选项 -h,--help 查看该模块的帮助信息 -F,-onefile 产生单个的可执行文件 -D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本的可执行文件 -w,--windowed,--noconsolc 指定程序运行时不显示命令行窗口(仅对 Windows
那么很自然会有人有这样的疑问:难道Python程序只能以源代码的方式来运行吗,能不能通过某种方式来保护自己的源代码呢?答案是肯定的。 这方面的技术主要有两种:一种方法是把Python程序伪编译成扩展名为.pyc的字节码文件,一种是通过py2exe、pyinstaller或者cx_Freeze对Python程序进行打包。 之前的文章:Python安装扩展库与打包成exe可执行文件的方法已经介绍了打包的有关内容,本文主要介绍Python代码编译与反编译。 可以使用py_compile模块的compile()函数或compileall模块的compile_file对Python源程序文件进行编译得到扩展名为.pyc的字节码以提高加载和运行速度,同时还可以隐藏源代码 此外,Python的compileall模块还提供了compile_dir()和compile_path()等方法,用来支持批量Python源程序文件的编译。
.安装PyInstaller 2.指定要打包文件的路径,使用pyinsatll -F “路径”,如果不需要弹出框后缀–noconsole 3.在下面这个目录中查找打包好的文件 发布者:全栈程序员栈长
Module 也仅会被 编译为 .pyc 的档案。 执行 <Python 安装路径>\Script\cxfreezes-quickstart 让 cx_Freeze 帮你进行编译前的相关设定,这个动作会由 cx_Freeze 以交谈方式帮你建立编译用的 setup.py 档案,稍后在编译时将会使用到。 # Executable file name: <最终可执行档案的名称> # (C)onsole application, (G)UI application, or (S)ervice <设定档储存位置以及将会执行编译的指令> 9. 按下 "Y" 后,cx_Freeze 就会开始编译档案,编译完成后即可以在同目录下的 build 资料夹找到编译后的相关档案。 10. 记得!