如何在g ++中静态包含库?

Ken*_*ows 5 dll g++ static-linking

正如标题中所提到的,这是一个真正的初学者的问题.

我意识到经过几年的CS课程和项目之后,我从来没有真正需要导出其他人可以运行的可执行文件而无需手动编译源代码(这是大多数/所有教授/助教所做的,因为他们想要无论如何要看你的源代码).

所以我的问题基本上是这样的:

当我编译一些基本的C++代码(例如"Hello World"代码)时,我似乎总是需要某种外部DLL来运行它.

  • Visual Studio需要.NET框架.
  • Cygwin需要Cygwin.dll.
  • MinGW需要libgcc_s_dw2-1.dll或类似的东西.

那么我如何简单地编译一个可执行文件,以便我(或我给文件的人)只需双击它并让它运行?我猜我有一些花哨的命令行标志我可以在g ++上用来静态链接DLL; 我以前根本不需要这样做.

正如我说的那样,这是一个超级初学者的问题,但我找不到(很容易,无论如何)这个问题的答案,StackOverflow或其他任何地方.我认为,很大程度上,因为搜索术语在其他问题的描述中如此常用.

无论如何,所有的帮助表示赞赏.

编辑:

我真的在谈论Hello World计划.例如:

HelloWorld.cpp:

#include <iostream>
using namespace std;

int main()
{
    cout << "Hello World!" << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

小智 1

尝试 g++ -static -static-libgcc