小编Tea*_*cum的帖子

通过相对路径c ++ cmake guest查找单元测试的外部测试文件

访问外部测试文件以进行c ++项目单元测试的正确方法是什么?我正在使用CMake和Gtest.

这是目录结构的示例.

Project
   -src
       -test (unit tests here)
   -test-data (data file here)
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ unit-testing cmake googletest

11
推荐指数
3
解决办法
5658
查看次数

使用cmake ExternalProject_Add将github库(BamTools)添加到c ++

我想将BamTools库用于项目.我正在使用CMake ExternalProject_Add来执行此操作.CMake克隆和编译BamTools GitHub repo罚款,但无论我尝试什么,我都无法正确链接.有没有人有任何想法?

这是我的CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
project(myProject)
include(ExternalProject)

set( CMAKE_C_FLAGS "-Wall -g")
set(BAMTOOLS_ROOT ${CMAKE_CURRENT_BINARY_DIR}/external/bamtools)
set(BAMTOOLS_INCLUDE_DIRS ${BAMTOOLS_ROOT}/include/bamtools)
set(BAMTOOLS_LIBRARIES ${BAMTOOLS_ROOT}/lib/bamtools/libbamtools.a)
set(bamtools_INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/external/bamtools")
set(bamtools_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${bamtools_INSTALL_DIR})

include_directories(${BAMTOOLS_INCLUDE_DIRS})

ExternalProject_Add(bamtools
  PREFIX ${BAMTOOLS_ROOT}
  GIT_REPOSITORY https://github.com/pezmaster31/bamtools
  BINARY_DIR ${BAMTOOLS_ROOT}
  INSTALL_DIR ${BAMTOOLS_ROOT}
  CMAKE_ARGS ${bamtools_CMAKE_ARGS}
)

add_subdirectory(src)
Run Code Online (Sandbox Code Playgroud)

我的简单main.cpp文件存在于与CMakeLists.txt相同的目录中的src文件夹中

#include <iostream>
#include <string>
#include <api/BamReader.h>

using namespace BamTools;

int main(){
    BamReader reader =BamReader();
    reader.Close();
};
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

Linking CXX executable project
Undefined symbols for architecture x86_64:
  "_crc32", referenced from:
      BamTools::Internal::BgzfStream::DeflateBlock(int) in libbamtools.a(BgzfStream_p.cpp.o)
  "_deflate", referenced from:
      BamTools::Internal::BgzfStream::DeflateBlock(int) in libbamtools.a(BgzfStream_p.cpp.o)
  "_deflateEnd", referenced from:
      BamTools::Internal::BgzfStream::DeflateBlock(int) …
Run Code Online (Sandbox Code Playgroud)

c++ git cmake

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

标签 统计

c++ ×2

cmake ×2

git ×1

googletest ×1

unit-testing ×1