【发布时间】:2013-07-16 16:12:10
【问题描述】:
我的用户抱怨他们必须在他们不拥有的机器上安装 linux 线程构建块,并且许多主机不希望我的最终用户安装英特尔线程构建块,所以我想创建一个静态版本我的动态库/插件/模块/扩展(无论正确的术语是用于可插入 C++ 程序/dll/so)。
我发现对于 Windows,我必须使用 /MT(多线程)而不是默认的 /MD 开关(多线程 DLL),因此我的程序将没有依赖项(但是,Windows有一个并发容器库,所以我不需要在那里使用 TBB)。
我只是不知道 linux 的等价物是什么?
或者是否有一个 .sln to makefile 转换器可以找出所有选项?
我在 Windows 上进行开发,但我的大多数最终用户都使用 linux,所以我想确保他们没有任何负担,并且我希望他们能够非常轻松地使用我的开源版本。
【问题讨论】:
-
/MTd 指示链接器使用 多线程调试 运行时库 (see MSDN)。
-
@Casey 抱歉已修复,/MD :S
-
那么有人知道将库依赖项链接到可执行文件的开关吗?
-
英特尔故意不支持这种情况。你也不应该,当最终程序使用 两个 TBB 副本时,结果会非常很差。他们每个人都认为他们可以控制程序中的线程。
-
TBB 只是一个例子;o 并且可能是一个坏例子。 :$ 并且不知道,感谢您提供信息,将在此处链接投诉用户。
标签: c++ command-line g++ dependencies equivalent