小编Giz*_*wai的帖子

安装(TARGETS ...)和add_subdirectory

是否可以将install(TARGETS ...)与在add_subdirectory中添加的目录中定义的目标一起使用?

我的用例是,我想为etest构建e.gg rpm.gtest项目恰好有一个没有任何安装语句的CMakeLists.txt.我想构建包而不将这些语句添加到gtest的CMakeLists.txt.

我有这个结果目录结构:

+ gtest-1.5.0/...
+ CMakeLists.txt 
Run Code Online (Sandbox Code Playgroud)

gtest-1.5.0的CMakeLists定义了这样的库:

cxx_static_library(gtest "${cxx_strict}" src/gtest-all.cc)
cxx_static_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
target_link_libraries(gtest_main gtest)
Run Code Online (Sandbox Code Playgroud)

现在我想在我的CMakeLists.txt中添加这样的内容:

add_subdirectory(gtest-1.5.0)
install(TARGETS gtest gtest_main ARCHIVE DESTINATION lib)
Run Code Online (Sandbox Code Playgroud)

但是cmake正确地指出:

CMake Error at CMakeLists.txt:10 (install):
  install TARGETS given target "gtest" which does not exist in this
  directory.
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有修补gtest-1.5.0的情况下做到这一点?

install cmake

21
推荐指数
1
解决办法
7995
查看次数

Android Studio设备文件浏览器run-as:包'我的项目名称'未知

我正在使用android studio 3.0,我想访问sqlite db,所以我想在数据/数据/项目中下载数据库,但是当我连接Android手机并打开项目floder然后发生这种情况时,运行方式:包'我的项目'未知 在此处输入图像描述

但是当我使用模拟器来做到这一点,一切都很好 输入图像描述在这里 有没有人知道它为什么?非常感谢!

java android

14
推荐指数
1
解决办法
1473
查看次数

在D2中读取字节的最快方法

我想尽可能快地从文件读取单个字节到D2应用程序.应用程序需要每字节字节,因此读取较大的数据块不是读取器接口的选项.

为此,我在C++,Java,D2中创建了一些简单的实现:https://github.com/gizmomogwai/performance.

如您所见,我在应用程序代码和内存映射文件中尝试了普通读取,缓冲区.对于我的用例,内存映射解决方案效果最好,但奇怪的是D2比java慢.我希望D2能够在C++和Java之间登陆(C++代码用-O3 -g编译,D2代码用-O -release编译).

那么请告诉我这里我做错了什么以及如何加快D2实施.

为了让您了解用例,这里是一个C++实现:

class StdioFileReader {
private:
  FILE* fFile;
  static const size_t BUFFER_SIZE = 1024;
  unsigned char fBuffer[BUFFER_SIZE];
  unsigned char* fBufferPtr;
  unsigned char* fBufferEnd;

public:
  StdioFileReader(std::string s) : fFile(fopen(s.c_str(), "rb")), fBufferPtr(fBuffer), fBufferEnd(fBuffer) {
    assert(fFile);
  }
  ~StdioFileReader() {
    fclose(fFile);
  }

  int read() {
    bool finished = fBufferPtr == fBufferEnd;
    if (finished) {
      finished = fillBuffer();
      if (finished) {
    return -1;
      }
    }
    return *fBufferPtr++;
  }

private:
  bool fillBuffer() {
    size_t l = fread(fBuffer, …
Run Code Online (Sandbox Code Playgroud)

c++ d

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

标签 统计

android ×1

c++ ×1

cmake ×1

d ×1

install ×1

java ×1