相关疑难解决方法(0)

GTest 与 Conan 一起安装:未定义的引用

我尝试使用通过 conan 安装的 gtest,但最终出现了未定义的引用链接器错误。这个问题或多或少是这个 stackoverflow 问题的后续。但我认为提供的例子很简单。我在最新的 arch linux x64 下编译,使用 gcc 6.3。

C++ 版本会不会有些不匹配?或者您对如何解决问题有任何其他想法吗?

我将在以下提供我的源代码:

目录树:

tree
.
??? CMakeLists.txt
??? conanfile.txt
??? main.cpp
Run Code Online (Sandbox Code Playgroud)

主.cpp:

#include <iostream>
#include <gtest/gtest.h>

class TestFixture : public ::testing::Test {
protected:
    void SetUp(){
    std::cout << "SetUp()" << std::endl;
    }

    void TearDown(){
    std::cout << "TearDown()" << std::endl;
    }
};



TEST_F (TestFixture, shouldCompile) {
    std::cout << "shouldCompile" << std::endl;
    ASSERT_TRUE(true); // works, maybe optimized out?
    ASSERT_TRUE("hi" == "hallo"); // undefined reference

}

int main(int argc, …
Run Code Online (Sandbox Code Playgroud)

c++ cmake googletest conan

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

如何在 Ubuntu 16.10 上使用 Conan 和 SDL2 解决未定义的引用错误?

我试图让柯南通过以下的测试项目工作的葛亭入门指南,这样我就可以开始在实际项目中使用它。我试图在 Ubuntu 16.10 x64 上用 g++ 编译的 C++ 项目中使用带有 glew 的 SDL2。

我的 conanfile.txt 看起来像这样:

[requires]
SDL2/2.0.5@lasote/stable
glew/2.0.0@coding3d/stable

[generators]
cmake
Run Code Online (Sandbox Code Playgroud)

我的 CMakeLists.txt 文件如下所示:

project(conantest)

cmake_minimum_required(VERSION 3.5)

set(CMAKE_CXX_STANDARD 11)

include(conan/conanbuildinfo.cmake)
conan_basic_setup()

set(SRC_FILES main.cpp Display.cpp)
add_executable(conantest ${SRC_FILES})
Run Code Online (Sandbox Code Playgroud)

我的项目包含一个包含 CMakeLists.txt、conanfile.txt、我所有源代码的目录、一个 Cmake 的构建目录、一个 Conan 的 conan 目录和一个重建.sh。每当我对构建环境进行更改时,我都会使用此重建.sh 脚本来清理和构建项目(rm -r 的,尽管它在工作后不是最佳的,以确保在我尝试时删除先前设置中的任何错误一个修复)。

我的rebuild.sh 看起来像这样:

rm -r ./build/*
rm -r ./conan/*
cd conan
conan install ..
cd ../build
cmake ..
make
Run Code Online (Sandbox Code Playgroud)

当我运行这个脚本时,一切似乎都在工作,直到最终的可执行文件被链接。发生这种情况时,我得到Display.cpp:(.text+0x8a): undefined reference to `SDL_Init'. 为了解决这个问题,我在这里这里尝试了解决方案。虽然这些不是 …

c++ ubuntu conan

0
推荐指数
1
解决办法
1538
查看次数

标签 统计

c++ ×2

conan ×2

cmake ×1

googletest ×1

ubuntu ×1