- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
我正在尝试构建一个 CMake 项目,下面是我正在尝试做的示例代码。
我正在开发两个头文件,我想使用线程头从类 Loader 调用类 Processor 中的成员函数。这是代码,以及 CMake,以及我在运行 make
命令后收到的错误消息。
CMakeLists.txt
cmake_minimum_required(VERSION 3.2.2)
project(c-plus-assignment)
## C++11 Flags
add_compile_options(-std=c++11)
add_compile_options(-pthread)
add_compile_options(-Werror=return-type) # error on missing return type
add_compile_options(-Werror=format) # error on wrong printf formats
add_compile_options(-Werror=parentheses) # error when using ambiguous syntax
include_directories(${PROJECT_SOURCE_DIR}/include)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
add_executable(main_app
main.cpp
src/Processor.cpp
src/Loader.cpp
src/Logger.cpp)
加载程序.hpp
#pragma once
#include <string>
#include <c-assignment/Processor.hpp>
using namespace std;
class Loader
{
private:
Processor *Processor_obj; // creating an object out of the Processor class
std::thread t1;
Processor boo;
public:
Loader();
~Loader();
void thr(int time);
string usr_input;
void read_usr_input(void);
};
处理器.hpp
#pragma once
#include <string>
#include <thread>
using namespace std;
class Processor
{
public:
bool status; //status of processing true = free, false = busy
float wait_amount; //variable to store the random generated float
Processor();
void process(string);
};
加载程序.cpp
#include <c-assignment/Loader.hpp>
#include <c-assignment/Logger.hpp>
#include <c-assignment/Processor.hpp>
#include <iostream>
#include <thread>
Loader::Loader()
{
Processor_obj = new Processor(); // creating an object out of the Processor class
}
Loader::~Loader()
{
t1.join();
}
void Loader::read_usr_input(void)
{
std::cout << "Please enter a command" << '\n';
std::cin >> Loader::usr_input;
if (Processor_obj->status == true) //check if the Processor is busy or not
{
if (Loader::usr_input == "fc" || Loader::usr_input == "out")
{
//Processor_obj->process(Loader::usr_input);
Loader::t1 = std::thread(&Processor::process,Loader::boo,Loader::usr_input);
}
//else if (){}
//else if (){}
else
{
std::cout << "Unknown command" << '\n';
}
std::cout << '\n' << "you entered the command" << Loader::usr_input << '\n';
}
else {std::cout << "Processor class is busy" << '\n';}
}
处理器.cpp
#include <c-assignment/Processor.hpp>
#include <c-assignment/Logger.hpp>
#include <iostream>
#include <thread>
#include <chrono>
#include <string>
#include <random>
#include <ctime>
using namespace std;
Processor::Processor()
{
Processor::status = true;
}
void Processor::process(string usr_input)
{
srand(time(NULL));
Processor::wait_amount = ((float)rand() / RAND_MAX) * (3.00f - 1.00f) + 1.00f;
std::cout << "waiting time is" << (Processor::wait_amount)*1000 << "milliseconds" << '\n';
Processor::status = false;
std::this_thread::sleep_for(std::chrono::milliseconds((int)(Processor::wait_amount)*1000));
Processor::status = true;
std::cout << "/Processed/" << '\n';
}
主要.cpp
#include <c-assignment/Processor.hpp>
#include <c-assignment/Loader.hpp>
#include <c-assignment/Logger.hpp>
int main()
{
while (true) {
Processor a;
Loader b;
Logger c;
//a.process("rfc");
b.read_usr_input();
}
return 0;
}
这是我运行 make
时的输出:
[ 20%] Linking CXX executable main_app
CMakeFiles/main_app.dir/src/Loader.cpp.o: In function `std::thread::thread<void (Processor::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >), Processor&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(void (Processor::*&&)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >), Processor&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
Loader.cpp:(.text._ZNSt6threadC2IM9ProcessorFvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEJRS1_RS7_EEEOT_DpOT0_[_ZNSt6threadC5IM9ProcessorFvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEJRS1_RS7_EEEOT_DpOT0_]+0xb4): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
CMakeFiles/main_app.dir/build.make:172: recipe for target 'main_app' failed
make[2]: *** [main_app] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/main_app.dir/all' failed
make[1]: *** [CMakeFiles/main_app.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
我正在使用来自 chef 的软件包开发自定义 Recipe 。 我在 recipes 文件夹下创建了一个名为 apache.rb 的文件。 然后我通过 berks 上传了菜谱,并在一个节点上用 rec
I like to create a single Openrewrite migration jar that includes custom recipes and rewrite.yml
我正在尝试对一个模型进行 k 折交叉验证,该模型根据卫星图像预测树种断面积比例的联合分布。这需要使用 DiricihletReg::DirichReg() 函数,这反过来又需要使用 Dirichlet
在一本 Recipe 中,我有一个图书馆( client_helper.rb )。在其中定义了一个模块。模块名称为 客户 helper .这是模块代码。 module Client_helper #
我的 nginx Recipe 中有两个 Chef Recipe 。一个名为 default.rb,另一个名为 sites.rb。当我用 运行网站 Recipe 时 RUN_LIST=recipe[n
我有 Recipe base 和 Recipe myapp base 有 2 个配方 - my_java 和 java_with_custom_stuff 在 java_with_custom_stu
所以我使用以下配方: include_recipe "build-essential" node_packages = value_for_platform( [ "debian", "ubunt
我正在尝试使用 Vagrant 创建我的第一个 Chef Recipe ,但在第一步就遇到了问题。我的 Recipe 的第一行是: include_recipe "apt" 但是当我尝试 vagran
我已经下载了 Recipe “chef-jira”,现在我正在尝试在 Ubuntu 12.04 上使用 chef-solo/vagrant 运行它。 经过大量的谷歌搜索和 stackoverflow
我们有一个测试环境,由一台服务器、一台客户端和另一台作为工作站的客户端组成。 我知道命令 # knife cookbook site install apache2 但是这个命令会产生错误,因为我什至
我使用knife solo 使用.chef/knife.rb 定义的自定义模板创建了一个新文件夹和一个带有默认食谱的食谱。我的问题是我应该使用什么命令让刀使用该模板而不是使用 cp 创建新食谱? 类似
我是 Chef 的初学者。任何人都可以告诉我是否有一种方法可以将 Cookbook 的 files/default 目录中的目录复制到其他位置。 例如我在 files/ 目录中有一个包含文件 a.tx
我有一本包含 2 个食谱的食谱。 属性/default.rb default['vpn']['crt'] = 'nocrt' 默认配方具有创建通用 crt 文件的文件资源 file 'cert' do
我的情况是我有三本 Recipe ,每本都有一个写入/etc/hosts 文件的模板资源。 与其覆盖,我想附加: 第一本 Recipe 创建/etc/hosts 文件并写入第 1、2、3 行。 第二本
从我当前正在执行的食谱中,我想访问它在我的执行机器上的“当前”位置。 我需要它来访问它的缓存目录结构。 我有一种感觉,它位于“node[]”内的某个地方,但我根本找不到有关其结构的任何文档。 有什么建
z3c.recipe.scripts 和 zc.recipe.egg 似乎都在积极开发中。 z3c.recipe.scripts 描述为: The script recipe installs egg
我对 ModelMommy 有一段时间的烦恼,但我不知道如何正确地做到这一点。 让我们假设一个简单的关系: class Organization(models.Model): label =
我将一个 zip 文件放入 Recipe 中,然后将其上传到服务器后,我发现了这个错误。有人可以建议我解决此错误的正确解决方案吗... ERROR: Failed to upload ~/chef-r
我第一次使用 Chef,试图了解 Recipe 和 Recipe 。 我在配置我目前在我的角色文件中执行的标准 php 说明书后收到错误“mysql::client”失败: run_list( "
Glpk 需要使用configure make install 命令构建。所以我使用 zc.recipe.cmmi 配方来构建 glpk 包。它在 bin 目录中生成 glpsol 命令。我需要能够在
我是一名优秀的程序员,十分优秀!