【问题标题】:Making C-Excutable/Setup file, that runs on any computer制作可在任何计算机上运行的 C-Executable/Setup 文件
【发布时间】:2016-07-26 08:02:51
【问题描述】:

我有一个名为“Project.c”的 c 项目/文件,在 windows server 8 中,我可以在我的计算机上编译和运行。我使用以下命令编译/构建。

gcc -o myexcutable Project.c external_libraries

:-外部库是,库如:lpthread,lpcre 和其他...

然后运行:$./myexcutable

但是,现在,我想将我的可执行文件(仅)选择到其他计算作为“设置”。然后当我启动我的可执行文件/设置时,它应该运行!但事实并非如此。我的问题是,是否有任何技术可以制作在 Windows Server 8 上运行的可执行文件?谢谢。

Edit[1]:基本上,当我说任何“Pc/computer”时,它都是windows server 8(相同的操作系统)

Edit[2]:出现的错误,说:The program can't start because cygwin1.dll is missing from your computer. Try reinstalling the program to fix this problem.

【问题讨论】:

  • 假设任何 PC 包括 Linux、BSD、Mac 等,这是不可能的。它们都有一些不同的系统调用、不同的二进制加载器等等。您能做的最好的事情就是坚持使用标准 C/C++,在每个上编译,然后分发特定的二进制文件。
  • 在互联网上搜索GCC Cross-Compiler 一个有趣的链接可能是:en.wikipedia.org/wiki/Cross_compiler
  • @Xarn:谢谢您的回复,但即使在同一台机器/计算机上(win server 8),它也不适合我。

标签: c++ c windows-server-2008


【解决方案1】:

因为每个架构的工作方式略有不同,这基本上是不可能的,你能做的最好的就是静态链接库,如果其他电脑具有相同的架构和操作系统,它应该可以工作。 要静态链接库,请使用 -static 选项,如下所示:

gcc -o myexcutable Project.c -static external_libraries

另一种解决方案是编译许多不同版本的设置并为每台电脑使用不同的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 2021-10-29
    • 2017-04-06
    • 2012-03-08
    • 2013-08-08
    相关资源
    最近更新 更多