gpt4 book ai didi

multithreading - 编译时-pthread和-lpthread之间的区别

转载 作者:行者123 更新时间:2023-12-02 10:35:07 24 4
gpt4 key购买 nike

编译多线程程序时使用的gcc -pthreadgcc -lpthread有什么区别?

最佳答案

-pthread告诉编译器在pthread库中链接以及为线程配置编译。

例如,以下内容显示了在我的Ubuntu计算机上安装的GCC软件包上使用-pthread选项时定义的宏:

$ gcc -pthread -E -dM test.c > dm.pthread.txt
$ gcc -E -dM test.c > dm.nopthread.txt
$ diff dm.pthread.txt dm.nopthread.txt
152d151
< #define _REENTRANT 1
208d206
< #define __USE_REENTRANT 1

使用 -lpthread选项只会导致pthread库被链接- undefined 预定义的宏。

底线:您应该使用 -pthread选项。

注意: -pthread选项在GCC文档中被记录为特定于平台的选项,因此可能并不总是可用。但是,它在GCC文档未明确列出它的平台上可用(例如i386和x86-64)-您应该在可用时使用它。

还要注意,GCC还使用了其他类似选项,例如 -pthreads(在Solaris 2上作为 -pthread的同义词列出)和 -mthread(对于i386和x86-64 Windows上的MinGW特定的线程支持)。我的理解是,GCC正在尝试统一使用oj​​it_code。

关于multithreading - 编译时-pthread和-lpthread之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60677077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com