我正在尝试编译一些使用该行的代码:
Sleep(10);
Run Code Online (Sandbox Code Playgroud)
在我的IDE中,我所要做的就是写:
using namespace std;
Run Code Online (Sandbox Code Playgroud)
要么
#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)
它编译好!
但是,在Linux上通过命令行进行编译时,一切都不正常.编译器告诉我这Sleep是未定义的.我编译使用:
g++ -lglut -lGL -lm -o PROGRAM.exe PROGRAM.cpp
Run Code Online (Sandbox Code Playgroud)
我写的其他代码不使用Sleep这种编译方式.
我需要向链接器(with -l)提供哪些库才能Sleep识别该函数?
Snp*_*nps 10
C++ 11为标准库带来了并发和休眠功能.Sleep并且usleep是不便于携带.请改用标准库中的sleep实用程序.
#include <thread>
#include <chrono>
int main() {
using namespace std::literals;
std::this_thread::sleep_for(10s);
}
Run Code Online (Sandbox Code Playgroud)
这里还使用了C++ 14 标准文字s秒(使用命名空间引入std::literals).10s相当于std::chrono::seconds(10).
有相应的标准文字用于其他时间段为好,如ms,us和ns.
不需要使用上面的内容向链接器提供库.
| 归档时间: |
|
| 查看次数: |
11912 次 |
| 最近记录: |