我想尽可能多地剥离 - 在Linux上:一个ELF.我只想在那里运行它需要的东西.
我试过用strip:
strip --strip-all elf
Run Code Online (Sandbox Code Playgroud)
但它似乎没有做得好:nm仍然显示很多东西,二进制文件仍然很大.
我该怎么办?
我正在尝试编译不使用动态加载程序的可执行文件(ELF文件).我构建了一个交叉编译器,它编译linux中的mips,用于我制作的模拟器上.我在编译hello.cpp文件(hello world program)时声明了标志-static-libgcc.显然这还不够.因为我的可执行文件中仍有一个段包含动态加载程序的名称/路径.我用什么标志来生成包含需要运行的所有内容的可执行文件?我需要重建我的交叉编译器吗?
好吧,所以我正在用C#编写我自己的安装程序,而我想要做的就是把文件放在.exe中,所以我可以做File.Copy(file,filedir);
或者,如果这是不可能的,还有另一种方法可以做我想做的事情吗?
作为编写编译器的先驱,我正在尝试理解Windows(32位)可移植可执行格式.特别是我想看一个简单的可执行文件的例子,除了正确加载,运行和退出之外什么都不做.
我已经尝试编写和编译一个简单的C main函数,除了生成的.exe是〜22KB并且包含许多来自KERNEL32.DLL的导入(可能由LIBC用于设置环境,堆等).甚至DOS标题也可能更小(它当前打印默认的'此程序无法在DOS模式下运行').
最小的Windows 32位可执行文件的结构是什么?
因此.exe文件是一个可以由Windows执行的文件,但它究竟包含什么?处理器特定的汇编语言?或者是某些被Windows识别的中间语句将其转换为特定处理器的程序集?Windows在"执行"时对文件做了什么?
是否可以从PowerShell脚本创建可执行的.exe文件?
有没有办法确定当前文件是否是在Perl源中执行的文件?在Python中,我们使用以下构造执行此操作:
if __name__ == '__main__':
# This file is being executed.
raise NotImplementedError
Run Code Online (Sandbox Code Playgroud)
我可以使用FindBin和一起破解一些东西__FILE__,但是我希望有一种规范的方法可以做到这一点.谢谢!
如何在svn存储库中的文件上设置可执行位?
我试过了:
chmod +x sync.py
svn commit sync.py -m "Make sync.py executable"
Run Code Online (Sandbox Code Playgroud)
但这种变化没有传播.
如何在svn存储库中设置可执行位?
我使用命令:
pyinstaller.exe --icon=test.ico -F --noconsole test.py
Run Code Online (Sandbox Code Playgroud)
所有图标都不会更改为test.ico
一些图标保持默认(pyinstaller)图标...
为什么?
所有图标更改操作系统 - > Windows 7 32位,Windows 7 64位(制作exe文件操作系统)
保持默认图标OS - > windows 7 64bit(其他PC)