编译和链接多线程代码。
该选项将 -D_REENTRANT 传递给预处理程序,并将 -lthread 以正确的顺序传递给 ld。
如果应用程序或库是多线程的,则必须使用 -mt 选项。
为了确保正确的库链接顺序,必须使用该选项而不是 -lthread 来与 libthread 链接。
如果使用的是 POSIX 线程,则必须使用 -mt -lpthread 选项来链接。由于对于多线程应用程序,libC(兼容模式)和 libCrun(标准模式)需要 libthread,因此必须使用 -mt 选项。
如果在不同的步骤进行编译和链接并且使用 -mt 编译,则可能会得到意外的结果。如果使用 - mt 编译一个转换单元,则应使用 -mt 编译该程序的所有单元。
如果要混合使用并行 Fortran 对象与 C++ 对象,必须在链接行中指定 -mt 选项。
为了确保正确的库链接顺序,必须使用该选项而不是 -lthread 来与 libthread 链接。
如果要使用 POSIX 线程,就必须使用 -mt 和 - lpthread 选项进行链接。由于对于多线程应用程序,libCrun(标准模式)和 libC(兼容模式)需要 libthread,因此必须使用 -mt 选项。
如果在不同的步骤中进行编译和链接,且使用 -mt 进行编译,应确保使用 -mt 进行链接(如以下示例中所示),否则会产生意外的结果。
example% CC -c -mt myprog.cc example% CC -mt myprog.o |
如果要混合使用并行 Fortran 对象与 C++ 对象,必须在链接行中指定 -mt 选项。
C99 支持在兼容模式 (-compat=4) 下不可用。
–xnolib、10.5 缓存成员变量、《多线程编程指南》和《链接程序和库指南》