gpt4 book ai didi

c++ - 编译 C++ 文件失败,因为找不到 `ssize_t` 的定义

转载 作者:行者123 更新时间:2023-11-28 01:39:37 27 4
gpt4 key购买 nike

我有一个 C++ 头文件 socket_client.h连同 C++ 源文件 socket_client.cc .在 socket_client.h ,我有这样的代码示例:

#include <limits.h>
#include <string>

ssize_t Send(const void *msg, const size_t msg_size/*send msg size*/);
...

socket_client.cc ,我有这样的代码片段:

#include "somewhere/socket_client.h"
#include <sys/types.h>
...

当我用 gcc 4.8 编译它时,编译器会说“错误”并提示找不到 ssize_t 的定义。 ;但是,当我添加 #include <sys/types.h>socket_client.h ,就会编译成功。有别人不加#include <sys/types.h>编译成功使用 gcc 4.4。

我对此很困惑。是否需要添加该行?处理这个问题的收集方法是什么?

ps:我使用一个名为 blade 的工具进行编译,该工具基于 scons(使用 gcc 4.4 的工具也是如此)。

最佳答案

答案很简单,看看您的包含顺序。在包含 types.h 之前包含 socket_client.h。这会导致您的错误。只需更改顺序,一切都应该没问题。

关于c++ - 编译 C++ 文件失败,因为找不到 `ssize_t` 的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47795900/

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