Sun Studio 12 Update 1:C++ 用户指南

A.2.56 –mt

可使用此选项在使用 Solaris 线程或 POSIX 线程 API 时编译和链接多线程代码。-mt 选项可确保以适当的顺序链接库。

此选项将 -D_REENTRANT 传递给预处理程序。

要使用 Solaris 线程,应将 thread.h 头文件包含进来并使用 —mt 选项进行编译。要在 Solaris 平台上使用 POSIX 线程,应将 pthread.h 头文件包含进来并使用 —mt —lpthread 选项进行编译。

在 Linux 平台上,只有 POSIX 线程 API 可用。(在 Linux 平台上没有 libthread。)因此,Linux 平台上的 —mt 添加 —lpthread 而不是 —lthread。要在 Linux 平台上使用 POSIX 线程,应使用 —mt 进行编译。

请注意,使用 —G 进行编译时,—mt 不会自动包含 —lthread—lpthread。需要在生成共享库时显式列出这些库。

—xopenmp 选项(用于使用 OpenMP 共享内存并行化 API)自动包含 —mt

如果使用 -mt 进行编译并在单独的步骤中进行链接,则除了在编译步骤中外,还必须在链接步骤中使用 -mt 选项。如果使用 -mt 编译和链接一个转换单元,则必须使用 -mt 编译和链接该程序的所有单元。

A.2.56.1 另请参见

–xnolib、《Solaris 多线程编程指南》和《链接程序和库指南