标签: executable

如何将文件嵌入可执行文件?

我有两个问题,第一个问题已经解决了.

当前问题
如果我嵌入了一个需要加载库的文件,例如jpeg图像或mp3音乐,我将需要使用该文件作为库的输入.但是,每个库都是不同的,并使用一种方法来获取文件作为输入,输入可以是文件名或FILE*指针(来自libc的文件界面).

我想知道如何访问带有名称的嵌入式文件.如果我创建一个临时文件,那将是低效的,还有另外一种方法吗?我可以将文件名映射到内存吗?我的平台是Windows和Linux.

如果show_file(const char*name)是库中的函数,我将需要一个字符串来打开该文件.
我已经看到了这些问题:
如何在内存中获取缓冲区的文件描述符?
从C中的文件描述符获取文件名

以下代码是我的解决方案.这是一个好的解决方案吗?它效率低下吗?

# include <stdio.h>
# include <unistd.h>

extern char _binary_data_txt_start;
extern const void* _binary_data_txt_size;
const size_t len = (size_t)&_binary_data_txt_size;

void show_file(const char* name){
    FILE* file = fopen(name, "r");
    if (file == NULL){
        printf("Error (show_file): %s\n", name);
        return;
    }

    while (true){
        char ch = fgetc(file);
        if (feof(file) )
            break;
        putchar( ch );
    }
    printf("\n");

    fclose(file);
}

int main(){

    int fpipe[2];
    pipe(fpipe);

    if( !fork() ){
        for( int buffsize = len, done …
Run Code Online (Sandbox Code Playgroud)

c c++ binary executable file

16
推荐指数
2
解决办法
6813
查看次数

Python - 创建一个运行代码的EXE,而不是编译时的代码

我正在制作一个设计为模块化的pygame程序.我正在使用main.py文件的pygame2exe构建一个exe,它基本上只是导入真正的主游戏并运行它.我希望的是一种将从EXE执行Python脚本的启动程序,而不是包含所有不可变文件的单个程序.

最好的方法是什么?我尝试使用imp在运行时动态导入所有模块而不是隐式导入它们,但这似乎打破了对象继承.

python executable pygame launcher dynamic-import

16
推荐指数
2
解决办法
1303
查看次数

在64位操作系统上以32位运行AnyCPU应用程序

有没有办法在64位Windows环境中运行而不重新编译为x86时,在AnyCPU下编译的.NET应用程序作为32位应用程序?

.net windows 64-bit executable compilation

15
推荐指数
2
解决办法
6354
查看次数

有没有办法用C语言更改目录?

有没有什么方法可以通过执行C程序更改到任何目录?

c directory executable

15
推荐指数
4
解决办法
6万
查看次数

我是在编写操作系统还是处理器?

据说通过使用C/C++,可以编写在平台上运行的"本机"程序.我对被认为是原生的东西感到困惑 - 处理器架构还是操作系统版本?

例如:

我有一个32位处理器和Windows 7(32位),我编译并生成和.exe文件.它可以保证在任何Windows 7 32位上运行吗?(在32/64位机器上赢7位32位)

Edit1:我不打算在这里只安装Windows操作系统.我的例子也可以扩展到Linux.例如,a.out在32位处理器上运行的32位Linux OS上生成可执行文件(默认情况下),然后在64位处理器上的32位Linux上运行它.

Edit2:感谢您的回复,但我还打算使用标准库和函数 - 没有特定于操作系统.只是ANSI或ISO C++标准规定的一次.没有对OS特定窗口系统或其他库的引用.谢谢

c c++ executable native

15
推荐指数
1
解决办法
769
查看次数

从可执行文件读取并验证证书

我想验证已签名的可执行映像的证书(通过验证,我的意思是告诉签名是否来自MS/Adob​​e/Oracle等).Windows是否为此任务提供api?我该怎么办,不知道.任何帮助,将不胜感激.我正在使用Windows和C++.我想验证本机可执行映像,而不是.NET程序集或Java jar文件.

UPDATE


好的,我会尽快描述我想要的东西.

1)验证PE证书.签名是否有效.当签名嵌入在PE中并且签名位于安全目录中时,它应该工作.(我在sysinternals论坛上发现这个并且运行正常,所以我不再需要这个了).

2)告诉谁是文件的签名者/出版者.我知道它可以通过CryptQueryObject实现(我找到了一个工作示例,虽然它不能与安全目录一起使用),但不知道如何将它与安全目录文件一起使用.

c++ windows validation executable certificate

15
推荐指数
2
解决办法
2万
查看次数

使用py2exe在Python中打包软件,找不到"libiomp5md.dll"

我在Window 7 OS上安装了Python 2.7.我希望使用py2exe将我的project.py打包在一个可执行文件中.按照说明我写了一个setup.py文件

from distutils.core import setup
import py2exe

setup(console=["project.py"])  
Run Code Online (Sandbox Code Playgroud)

我收到了这条消息

在此输入图像描述

我试图排除' libiomp5md.dll '

from distutils.core import setup
import py2exe

setup(console=["SegmentationAccuracy.py"])

dll_excludes = ['libiomp5md.dll']
Run Code Online (Sandbox Code Playgroud)

但总是我得到相同的错误消息"错误:libiomo5md.dll:没有这样的文件或目录"

我的可执行文件:

import math
import os
import numpy as np
import sys
import ogr
from progressbar import ProgressBar
from shapely.geometry import Polygon
nan = np.nan
Run Code Online (Sandbox Code Playgroud)

python executable exe runtime-error py2exe

15
推荐指数
2
解决办法
1万
查看次数

在Ubuntu下编译Cx-Freeze

整整一天,我一直在尝试在Ubuntu 14.04下编译cx-Freeze并且没有运气.所以我放弃了,决定在这里问专家.

是)我有的

  1. Ubuntu 14.04
  2. Python 3.4
  3. python-dev,python3-dev,python3.4-dev安装(我知道这个常见问题)
  4. cx-Freeze的来源4.3.3

我试过两种方法:

  1. 从源头安装
  2. 由pip安装

从源安装

sudo python3 setup.py install
Run Code Online (Sandbox Code Playgroud)

我得到了什么

许多

MyPath/cx_Freeze-4.3.3/source/bases/Console.c:24: undefined reference to `PyErr_Print'
MyPath/cx_Freeze-4.3.3/source/bases/Console.c:24: undefined reference to `Py_FatalError'
Run Code Online (Sandbox Code Playgroud)

然后

collect2: error: ld returned 1 exit status
error: command 'i686-linux-gnu-gcc' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)

通过pip安装

sudo pip3 install cx-Freeze
Run Code Online (Sandbox Code Playgroud)

我得到了什么

collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

错误:命令'i686-linux-gnu-gcc'以退出状态1失败

----------------------------------------
Cleaning up...
Command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/cx-Freeze/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-c954v7x6-record/install-record.txt --single-version-externally-managed --compile failed with …
Run Code Online (Sandbox Code Playgroud)

python linux ubuntu executable cx-freeze

15
推荐指数
2
解决办法
9056
查看次数

如何从命令行运行SWI-Prolog?

有没有办法只创建一个这样的prolog脚本hello.pl:

#!/usr/local/bin/swipl -q -s -t main

main:-
  write('Hello World\n').
Run Code Online (Sandbox Code Playgroud)

能够像这样从终端运行吗?

$ hello.pl
Hello World
$
Run Code Online (Sandbox Code Playgroud)

当我这样做时它给了我这个:

hello.pl: line 3: main:-: command not found
hello.pl: line 4: syntax error near unexpected token `'Hello World\n''
hello.pl: line 4: `  write('Hello World\n').'
Run Code Online (Sandbox Code Playgroud)

我可以通过在命令行上写这个来使它工作:

$ swipl -q -f hello.pl -t main
Hello World
$
Run Code Online (Sandbox Code Playgroud)

但有没有办法将直接脚本作为可执行文件运行?

编辑

还没有能够让这个工作.以下是@Boris在其答案评论中提出的命令的输出:

$ ls -l
total 8
-rwxr-xr-x  1 viatropos  staff  235 Aug 26 20:28 example.pl
$ cat example.pl
#!/usr/local/bin/swipl

:- set_prolog_flag(verbose, silent).

:- initialization main.

main …
Run Code Online (Sandbox Code Playgroud)

shell executable command-line prolog swi-prolog

15
推荐指数
2
解决办法
1万
查看次数

PyInstaller创建慢速可执行文件

我正在使用PyInstaller使用PyQt创建python程序的单个可执行文件.它创建.exe并运行正常,但需要15到20秒才能启动.我认为我可以创建一个启动画面,以便用户至少知道发生了什么事,不幸的是,启动画面没有比程序窗口本身更快地显示.我也创建了与-onedir相同的程序,程序确实启动得更快,但这不是一个真正的分发选项.如果有人对什么在减慢执行速度和加快速度的方法有任何想法,我当然会很感激.谢谢.

executable pyqt pyinstaller

14
推荐指数
1
解决办法
6213
查看次数