如何为 CPP 程序构建可执行文件
how to build executable file for cpp programm
我正在研究Ubuntu并编写普通的c ++程序。
使用 GCC 编译程序。
$ gcc test.cpp
我想将我的程序作为应用程序分发。当我双击 a.out 文件时,它可以在我的 PC 上运行,但在其他 (Linux) PC 上不起作用。
我的问题是:
GCC 要求在客户端 PC 上执行应用程序?
如何为所有平台(Win,Linux,OS X)构建可执行文件?
您正在尝试在 Linux 环境中编译 Windows PE 文件?
如果是这样,您将需要mingW工具链接
http://sourceforge.net/projects/mingw-w64/见这里(但由于 sourceforge.net 上的 mingw-w64 项目正在转移到 mingw-w64.org 我建议也检查一下 mingw-w64.org)
Windows
和 Linux
运行时不同。您需要在目标体系结构上重新编译代码。如果您在一个 linux 发行版上编译了代码,则有可能在另一个发行版上运行它,因为没有库冲突,并且体系结构是相同的。您可以使用 -static
标志来避免共享库可能出现的问题。如果您必须在一台面向另一台机器的计算机上编译代码,则需要cross-compiler toolchain
。举一个小例子,如果你想让你的代码在嵌入式系统上运行,你需要使用newlib这样的东西移植特定于操作系统的函数。因为Linux
发行版都使用相同的内核,所以这不是问题。但显然,Windows
和Linux
是完全不同的。
#1 的答案。哈哈但目标平台需要与应用程序期望的相同(或兼容)动态库。如有疑问,请使用静态链接进行编译。它可以帮助您在不同的 Linux 发行版上运行相同的代码。
gcc -static -o your_exe_file test.cpp
回答#2。几个选项:
-
编写可移植代码,并使用 C 编译器针对要部署到的每个平台进行编译。你最终会得到三个可执行文件:一个用于Linux,另一个用于Windows,另一个用于OS X。
-
发布源代码并让用户做编译工作。
-
使用诸如Java,Python,C#或任何其他不需要重新编译即可在多个平台上运行的语言。
附加说明:
使用 g++ 编译C++源代码(gcc 用于纯 C,不包括C++标准库)。
如果要使用 gcc(强烈建议不要使用),请将源文件链接到标准C++库。
gcc source.cpp -lstdc++
- 使用 Premake5 构建项目不会生成可执行文件或中间体
- 在Visual Studio 2017中构建Qt可执行文件
- 在 eclipse 中以发布模式构建后没有可执行文件
- 为多个测试文件构建可执行文件
- 构建MacOS可执行文件,以便使用cmake(包括OpenCV)进行分发
- 使用 CodeBlocks + GCC 构建的可执行文件是否可以在任何 Windows 上运行?
- 在QMAKE中编译之前,如何使用可执行文件构建多个标头文件
- cmake:构建可执行文件并库并链接它们
- CMake 构建静态可执行文件
- CMake 不会使用 add_executable 构建可执行文件
- 选择在CMAKE中构建库或可执行文件
- 使用LTO静态链接的可执行文件(链接时间优化):如何使用以前构建的库进行制作
- 如何在 VSCODE 中构建、运行和删除可执行文件和虚拟文件
- 构建一个可执行文件,如果是单个 cpp 文件
- 将 CLANG 构建的可执行文件与 G++-v6 构建的 Boost 库链接时出错
- 如何为 CPP 程序构建可执行文件
- 如何使用 NetBeans 包含的所有库依赖项构建可执行文件
- 没有 DLL 依赖项的静态构建可执行文件
- 当我包含标头时,Gradle不会构建可执行文件
- Xcode 4中的命令行工具构建版本,在构建可执行文件中包含图像存在问题