【C++编译】C++ error:‘syscall’ was not declared in this scope

简介: sys/syscall.h 内部表示,他封装了![[Pasted image 20220818151746.png]]打开对应的 syscall.h 文件内部依旧没有 syscall()函数的声明。

明明已经加了头文件


#include <sys/syscall.h>
#define gettid() syscall(__NR_gettid)



但是依旧不能使用 syscall() 函数,


检查源码后:

sys/syscall.h 内部表示,他封装了![[Pasted image 20220818151746.png]]

打开对应的 syscall.h 文件内部依旧没有 syscall()函数的声明。

![[Pasted image 20220818151900.png]]

如上所言,内部是一些宏定义。


至此问题明确为:缺少对应的syscall()的声明。


这里我的编译环境是使用VsCode 进行的远端编译,远端服务器是Linux系统。

在Linux系统下搜索 syscall() 函数:

grep -R syscall /usr/include

找到如下:

/usr/include/unistd.h:extern long int syscall (long int __sysno, ...) __THROW;


所以,添加指定头文件 内容:

#include <unistd.h>


再次编译成功完成。


再次补充:

通过对源码的学习,在头文件中找到如下内容,

e031c3a71b20b1ea76df7eb6f5839f80_96b94f8b5ed4436b951ca96fcd1ae281.png


其实这里就已经说明了,设计到的文件信息,所以之后的话,可以依照这个经验,来看看他所提到的文件中有无对应内容,这样可以减少查找的范围。


提高效率

目录
相关文章
|
2月前
|
安全 编译器 C++
【C++20概念】编译时多态性的力量
【C++20概念】编译时多态性的力量
50 0
|
2月前
|
安全 程序员 编译器
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
176 1
|
2月前
|
编译器 C++
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
【C++练级之路】【Lv.11】模板(你真的了解模板特化和分离编译吗?)
|
2天前
|
运维 Serverless Go
Serverless 应用引擎产品使用之在阿里云函数计算中c++模板,将编译好的C++程序放进去部署如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
9 1
|
6天前
|
存储 IDE 编译器
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
C++从入门到精通:1.3.1了解IDE与C++程序的编写、编译和运行
|
15天前
|
编译器 C++
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
如何判断一段程序是由 C 编译程序还是由 C++ 编译程序编译的?
|
18天前
|
存储 编译器 Linux
【C++初阶(十)】C++模板(进阶) ---非类型模板参数、模板的特化以及模板的分离编译
【C++初阶(十)】C++模板(进阶) ---非类型模板参数、模板的特化以及模板的分离编译
21 0
|
2月前
|
Ubuntu 编译器 C++
【Conan 入门教程 】在Ubuntu上使用Conan编译C++第三方库:一站式解决方案
【Conan 入门教程 】在Ubuntu上使用Conan编译C++第三方库:一站式解决方案
192 1
|
2月前
|
安全 编译器 程序员
【C++ 编译时有理算术】理解 C++编译时有理数运算:原理、实践与应用
【C++ 编译时有理算术】理解 C++编译时有理数运算:原理、实践与应用
68 1
|
2月前
|
安全 编译器 程序员
C/C++编译的第一步:深入了解预处理器的力量与优化
C/C++编译的第一步:深入了解预处理器的力量与优化
92 1