我正在学习 cmake,但对以下事情感到困惑:
我正在尝试将文件移动到特定位置,我是这样做的:
file(
INSTALL file.txt DESTINATION ../install_dir
)
Run Code Online (Sandbox Code Playgroud)
这工作得很好。这将“file.txt”移动到指定的目的地。
但是后来我尝试这样:
install (
FILES ./file.txt DESTINATION ./install_dir
)
Run Code Online (Sandbox Code Playgroud)
仅使用“安装”无法按预期工作。该文件未安装在该位置。有人可以向我解释一下区别吗?为什么它在第一种情况下有效,但在仅使用 install 命令时无效?谢谢你。
我正在学习多线程,我写了这段代码:
#include <iostream>
#include <mutex>
#include <thread>
#include <string>
#include <chrono>
#include <condition_variable>
int distance = 20;
int distanceCovered = 0;
std::condition_variable cv;
std::mutex mu;
void keep_moving(){
while(true){
std::cout << "Distance is: " << distanceCovered << std::endl;
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
distanceCovered++;
if(distanceCovered == distance){
cv.notify_one();
std::terminate();
}
}
}
void wake_me_up()
{
std::unique_lock<std::mutex> ul(mu);
cv.wait( ul, []{ return distanceCovered==distance; }); // protects the lines of code below
std::cout << "I'm here" << std::endl;
std::terminate();
}
int main() {
std::thread driver(keep_moving);
std::thread wake_me(wake_me_up); …Run Code Online (Sandbox Code Playgroud)