可使用此选项在使用 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 编译和链接该程序的所有单元。
–xnolib、《Solaris 多线程编程指南》和《链接程序和库指南》