小编Ale*_*lex的帖子

cmake if else with option

我有问题在cmake中option一起使用if-else.

project(test)

option(TESTE "isso é um teste" OFF)

if(TESTE)
  message("true")
else()
  message("false")
endif()

add_executable(test main.cpp)
Run Code Online (Sandbox Code Playgroud)

它总是显示true即使我选择了OFF,我做错了什么?

if-statement options cmake

32
推荐指数
2
解决办法
4万
查看次数

如何在adb shell上使用su命令?

我需要制作一个脚本,在Android设备上执行很多东西,我的设备是root的,当我进入shell时,我可以给命令su,它可以工作,但我需要传递这个命令,如:

adb shell "
su;
mv /sdcard/Download/app_test /data/local;
cd /data/local;
./app_test;
exit;
exit;
"
Run Code Online (Sandbox Code Playgroud)

当我在su之前输入一些命令时,根据我读的su创建了一个立即返回的新shell,但我需要在su shell上发出命令,我该怎么做?

linux shell android adb android-ndk

22
推荐指数
3
解决办法
9万
查看次数

cmake函数,参数和返回

我想创建一个cmake函数:

function(test src_list dst_list)
# do something
endfunction()
Run Code Online (Sandbox Code Playgroud)

用法:

test(${my_list} chg_list)
Run Code Online (Sandbox Code Playgroud)

这意味着,my_list是一个包含多个字段的列表,chg_list将接收在测试函数内修改的列表.

但它无法正常工作,我怎样才能在cmake中创建一个函数呢?

function cmake

20
推荐指数
2
解决办法
2万
查看次数

测试travis-ci脚本而不在github上提交

总是我需要在.travis文件上测试一些更改我需要将我的提交推送到github,如果它失败了,这是一个问题,我想知道,如果有任何方法在提交之前测试我的.travis文件它,最好是在travis-ci vm上,这意味着当我将一些commti推送到github时,我想制作travis所做的过程,但不需要提交或推送我的更改.

github travis-ci

13
推荐指数
1
解决办法
2369
查看次数

C++编译器如何区分用于二元运算符和模板的令牌>>

我怀疑C++编译器的解析器是否为Clang,编译器如何处理运算符>>以了解何时它是二元运算符以及何时关闭模板如:std::vector<std::tuple<int, double>>我想这是在解析器时间内完成的,所以更好的方法是解决那个词汇或仅使用>作为标记,并解决语法分析器中的问题?

c++ parsing c++11

6
推荐指数
1
解决办法
325
查看次数

我为什么要使用虚拟基类?

根据我的阅读,当你有一个包含数据的抽象基类时,会使用虚基类,所以不会复制类,但是,如果不使用虚拟类,复制类有什么问题?

应该避免使用保存数据的抽象基类吗?

举个例子:

class Storable {
public:
  Storable(const string& s);
  virtual void read() = 0;
  virtual void write() = 0;
  virtual ~Storable();
protected:
  string file_name; // store in file named s
  Storable(const Storable&) = delete;
  Storable& operator=(const Storable&) = delete;
};

class Transmitter : public virtual Storable {
public:
  void write() override;
  // ...
};

class Receiver : public virtual Storable {
public:
  void write() override;
 // ...
};

class Radio : public Transmitter, public Receiver {
public:
  void write() …
Run Code Online (Sandbox Code Playgroud)

c++ oop inheritance abstract-class c++11

4
推荐指数
1
解决办法
995
查看次数

JNI访问对象的实例变量

我正在尝试在Java上的实例对象变量中编写:

public class Test {
  public Test () {
    System.load("path_lib");
    this.jni_result = 0;
  }

  public PrintVar() {
    JniTest();
    System.out.println("jni_result: " + Long.toString(this.jni_result));
  }

  private native long JniTest();
  private long jni_result;
}
Run Code Online (Sandbox Code Playgroud)

在C代码中,我创建了写入变量的函数

static void
SetErrorVariable(JNIEnv *env, jobject jobj, long error) {
  /* Get a reference to jctf object's class */
  jclass TestClass = env->GetObjectClass(jobj);

  /* Get the Field ID of the instance variables "jni_result" */
  jfieldID fidError = env->GetFieldID(TestClass, "jni_result", "J");

  /* Change the variable "jni_result" */
  jlong jerror = …
Run Code Online (Sandbox Code Playgroud)

c c++ java java-native-interface

4
推荐指数
1
解决办法
4015
查看次数

使用护目镜时如何避免警告?

我正在使用愚蠢的范围保护,它正在工作,但它会生成一个警告,说该变量未使用:

warning: unused variable ‘g’ [-Wunused-variable]
Run Code Online (Sandbox Code Playgroud)

代码:

folly::ScopeGuard g = folly::makeGuard([&] {close(sock);});
Run Code Online (Sandbox Code Playgroud)

如何避免这种警告?

c++ scopeguard c++11 folly

4
推荐指数
1
解决办法
687
查看次数

将函数作为参数传递的最佳方法

在C++中有几种方法可以将函数作为参数传递,但我想了解每种方法的优点和优点,例如,从算法中查看函数的签名:

template <class RandomAccessIterator, class Compare>
  void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
Run Code Online (Sandbox Code Playgroud)

为什么std算法使用模板来传递函数而不是std :: function?

为什么线程使用移动语义和算法函数不?

template <class Fn, class... Args>
explicit thread (Fn&& fn, Args&&... args);
Run Code Online (Sandbox Code Playgroud)

PS:我无视C中用作函数指针的方式.

c++ c++11

4
推荐指数
1
解决办法
436
查看次数

使用ndk-build构建android共享库,而不使用jni文件夹

只有当我的所有src都在jni foler中时,我才能使用ndk-build构建一个android共享库,但是,我想使用ndk-build构建一个共享库而不需要jni文件夹,因为我的项目没有java代码,那我怎么能这样做?

我简单的Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := ctest
LOCAL_SRC_FILES := main.cpp
# for logging
LOCAL_LDLIBS    += -llog
# for native asset manager
LOCAL_LDLIBS    += -landroid

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

android build android-ndk android-build

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

静态分配的构造函数和析构函数顺序

我写了这个简单的代码,我期待一个不同的结果.

struct Test {
  int value_;
  Test(): value_(0) {
    std::cout << "Constructor: "<< value_ << "\n";
  }

  Test(int value): value_(value) {
    std::cout << "Constructor: "<< value_ << "\n";
  }

  ~Test() {
    std::cout << "Destructor: "<< value_ << "\n";
  }
};

int main(int argc, char **argv) {
  Test t;
  t = Test(10);
  t = Test(15);
  t = Test(20);
  t = Test(25);
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

Constructor: 0
Constructor: 10
Destructor: 10
Constructor: 15
Destructor: 15
Constructor: 20
Destructor: 20
Constructor: 25
Destructor: 25 …
Run Code Online (Sandbox Code Playgroud)

c++ constructor c++11

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

如何使用Clang将OpenCL内核编译为SPIR-V

我需要在SPIR-V中编译OpenCL内核以与Vulkan一起使用,我尝试使用Google CLSPV https://github.com/google/clspv,但问题出现在矢量化,像vload8这样的功能不起作用.所以我需要使用clang在SPIR-V中编译OpenCL内核.

clang opencl llvm-clang vulkan spir-v

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

使用tensorflow将图形和权重保存在文件中

我正在尝试使用训练模型在tensorflow上保存一个文件,我正在尝试使用这个简单的图:

import tensorflow as tf

a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b  # + provides a shortcut for tf.add(a, b).

builder = tf.saved_model_builder.SavedModelBuilder(".")

sess = tf.Session()
builder.add_meta_graph([tag_constants.SERVING])
builder.save()

print(sess.run(adder_node, {a: 3, b: 4.5}))
print(sess.run(adder_node, {a: [1, 3], b: [2, 4]}))
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

AttributeError: 'module' object has no attribute 'saved_model_builder'
Run Code Online (Sandbox Code Playgroud)

说它在tensorflow模块上不存在,我按照这个官方教程:https://www.tensorflow.org/programmers_guide/saved_model

如何在tensorflow中保存训练好的模型?

python tensorflow

2
推荐指数
1
解决办法
929
查看次数