小编Ken*_*edy的帖子

cmake:安装(文件等)和文件(安装等)之间的区别

我正在学习 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 命令时无效?谢谢你。

cmake

5
推荐指数
1
解决办法
1366
查看次数

在c ++中终止线程的正确方法

我正在学习多线程,我写了这段代码:

#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)

c++ multithreading

3
推荐指数
1
解决办法
3184
查看次数

标签 统计

c++ ×1

cmake ×1

multithreading ×1