gpt4 book ai didi

c++ - 无法在 Linux 上使用 Sleep() 编译 C++ 代码——要包含哪个库?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:01 25 4
gpt4 key购买 nike

我正在尝试编译一些使用该行的代码:

Sleep(10);

在我的 IDE 中,我所要做的就是编写:

using namespace std;

#include <unistd.h>

它编译得很好!

但是,在 Linux 上通过命令行编译时,一切都 OK。编译器告诉我 Sleep 未定义。我编译使用:

g++ -lglut -lGL -lm -o PROGRAM.exe PROGRAM.cpp

我编写的其他不使用 Sleep 的代码可以通过这种方式正常编译。

我需要向链接器提供什么库(使用 -l)才能识别 Sleep 函数?

最佳答案

C++11 为标准库带来了并发性和休眠功能。 Sleepusleep不可可移植的。请改用标准库中的 sleep 实用程序。

#include <thread>
#include <chrono>

int main() {
using namespace std::literals;
std::this_thread::sleep_for(10s);
}

这里是 C++14 standard literal s for seconds 也被使用(使用命名空间 std::literals 引入)。 10s 相当于 std::chrono::seconds(10) .

对于其他持续时间也有相应的标准文字,例如msusns

使用上述内容无需向链接器提供任何库。

Live example

关于c++ - 无法在 Linux 上使用 Sleep() 编译 C++ 代码——要包含哪个库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26047412/

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