gpt4 book ai didi

c++ - 主线程和插件中的pthread?

转载 作者:太空宇宙 更新时间:2023-11-04 08:17:47 24 4
gpt4 key购买 nike

我在 Ubuntu 14.04 上运行,并使用 gcc/g++ 进行编译和链接。 main 由大约 30 个文件和 20 个插件组成,由 main 调用。我用 -pthread作为编译器选项,我做 #include <pthread.h> .我的问题是:

  1. 仅将#include 放在main 中就足够了,还是我必须将它放在属于main 的所有文件中?我想插件的答案也是如此。
  2. 我是否必须将#include 放入所有插件主程序中并使用 -pthread 进行编译,即使它们不使用线程或者插件的调用已经是线程?

最佳答案

我会在这里走出去,假设当你说“插件”时,你实际上指的是“外部函数”,即在给定的 C 源文件中使用但未定义的函数。

当您从代码中调用任何外部函数时,至少需要有一个该函数的声明,以便编译器知道调用它的正确方法。头文件通常包含那些需要的声明。

例如,如果您想使用 strcpy功能,你需要#include <string.h> ,因为该文件包含 strcpy 的声明.如果strcpy没有在给定的 C 文件中的任何地方调用(也没有在 string.h 中声明的任何其他函数),那么您不需要 #include <string.h>在该文件中。

同样适用于 pthread.h , 你只需要在调用 pthread_create 时包含它或该 C 源文件中在该文件中声明的任何其他函数。

在链接时,如果链接在一起以创建可执行文件的任何源文件使用任何 pthread 函数,那么您需要传递 -pthread创建可执行文件时。

关于c++ - 主线程和插件中的pthread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34882347/

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