gpt4 book ai didi

c++ - Linux (CentOS) 中 g++ 的/MT (VC++) 等效开关是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:27:03 25 4
gpt4 key购买 nike

我的用户提示他们必须在不属于他们的机器上安装 linux 线程构建 block ,而且许多主机不希望我的最终用户安装 intel 线程构建 block ,所以我想创建一个静态版本我的动态库/插件/模块/扩展(无论正确的术语是可插入的 C++ 程序/dll/so)。

我发现对于 Windows 我必须使用/MT(多线程)而不是默认的/MD 开关(多线程 DLL)所以我的程序将没有依赖项(但是,windows有一个并发容器库,所以我不需要在那里使用 TBB。

我就是想不通 linux 的等价物是什么?

或者是否有一个 .sln 到 makefile 的转换器可以找出所有选项?

我在 Windows 上进行开发,但我的大多数最终用户都使用 Linux,因此我想确保他们不会对他们造成任何负担,并且我希望他们能够非常自在地使用我的开源版本。

最佳答案

Microsoft C++ 编译器中的 /MT 标志导致链接器链接到 C 和 C++ 运行时库的静态版本。 Microsoft 发布了运行时库的静态和动态版本,因此该选项有效地选择要链接的库集。此标志不影响与第三方库的链接。

在 Linux 端,您可以使用 -static 选项告诉链接器使用静态库。此选项不像在 Windows 上那样是特定于库的,它会影响所有库。但是如果你使用这个选项你必须提供你需要的所有库的静态版本,链接器不会自动转换动态库。这包括系统库和运行时库,它们并不总是以静态库的形式提供。它还包括 Intel TBB,如果 Intel 不以这种形式提供它,您可能需要自己将其编译为静态库。

关于c++ - Linux (CentOS) 中 g++ 的/MT (VC++) 等效开关是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711122/

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