Sun Studio 12 Update 1:C 用户指南

B.2.50 -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 进行编译时,-lthread-lpthread 均不会自动包括在 -mt 内。生成共享库时,您需要显式列出这些库。

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

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

B.2.50.1 另请参见

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