gpt4 book ai didi

python - 使用Python(或不使用Python)在Windows 8.1上运行C程序

转载 作者:行者123 更新时间:2023-11-30 17:27:44 28 4
gpt4 key购买 nike

最初的目标是在Windows平台上编写一个可执行软件,可以从7段显示器上读取数字并以恒定的时间间隔记录它。我尝试了几个 Python 中的 OCR 库(因为我打算用 Python 编写程序),但了解到它们更适合手写字母,很快我的注意力就转向了另一个用 C 编写的开源程序,专门为阅读而设计7 段显示器中的数字:http://www.unix-ag.uni-kl.de/~auerswal/ssocr/

因此,我在 Linux 中编译了源代码,并计划将编译后的文件及其链接的库文件移动到 Windows 机器上,天真地认为我可以简单地从 Python 脚本中“exec”来执行程序。事实证明它不能 - 只是尝试运行该程序(在末尾手动添加 .exe 扩展名并双击后)会生成响应“该应用程序无法在此电脑上运行。要查找该计算机的版本,请检查与软件发行商”。

所以我的问题是,是否有一种方法可以在 Windows 平台上从脚本简单地执行 C 程序,如果没有,您可能建议我做什么来完成上述任务?

最佳答案

您可以使用 Python 执行任何程序(与其他编程语言一样)。但发生的情况(对于所有语言)是它们执行系统调用并要求底层操作系统执行程序,因为这是操作系统的职责之一。

打开Python REPL(或编写Python脚本)并尝试这个(这只是从python执行程序的方法之一)

import subprocess
# if you're on windows call this
subprocess.call("notepad", shell=True)
# If on Linux call this
subprocess.call("ls", shell=True)

发生的情况是,Python 要求操作系统执行指定的程序(notepad 或 ls),而操作系统能否运行所请求的应用程序则是另一回事了。

您的 C 程序是在 Linux 上编译的,因此它是 Linux 可以运行的格式的可执行文件(可能是 ELF 格式)。 Windows 要求可执行文件采用不同的文件格式。文件扩展名只是帮助环境正确处理文件。如果您将 Linux 可执行文件的扩展名更改为“.exe”,它不会更改其内容,因此 Windows 仍然无法运行它。

您需要在 Windows 上重新编译 C 程序,以便编译后的程序可以在 Windows 上执行。如果程序需要 POSIX 环境(例如,如果它使用 fork() 系统调用等),那么您可以使用 Windows 上的 Cygwin(提供 Linux for Windows 中可用的系统调用和库)来编译它。

关于python - 使用Python(或不使用Python)在Windows 8.1上运行C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26291083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com