对 `` CLion 的未定义引用

undefined reference to `` CLion

我正在尝试在 CLION IDE 中编译一个项目,但我无法成功,但我可以在 Eclipse 中编译完全相同的文件。 首先这是错误:

CMakeFiles\Besart.dir/objects.a(library1.cpp.obj): In function `Init':
C:/Users/Besart/ClionProjects/Besart/Data Structures 1/HW 2/library1.cpp:17: 
undefined reference to `DataStructure::DataStructure()'

现在我已经包含了请求的文件,例如在 library1.cpp 的源文件中 我有:

#include "library1.h"
#include "DataStructure.h"
void* Init() {
    DataStructure* DS(nullptr);
     try {
       DS = new DataStructure();
      } catch (std::bad_alloc &e) {
       delete DS;
       return nullptr;
        }
      return (void *)DS;
}

但文件在DataStructures.cpp中实现并在DataStructure.h中声明 See image!!

最后这是 CMake:

cmake_minimum_required(VERSION 3.5)
project(Besart)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -std=c++11 )
set(SOURCE_FILES  "Data Structures 1/HW 2/main.cpp"
    "Data Structures 1/HW 2/Creature.cpp" "Data Structures 1/HW 2/Magi.cpp"
    "Data Structures 1/HW 2/DataStructure.cpp/"
    "Data Structures 1/HW 2/library1.cpp")

add_executable(Besart ${SOURCE_FILES}  "Data Structures 1/HW 2/main.cpp"
    "Data Structures 1/HW 2/Creature.cpp"
     "Data Structures 1/HW 2/Magi.cpp"
    "Data Structures 1/HW 2/DataStructure.cpp/"
     "Data Structures 1/HW 2/library1.cpp")

CMAKE

有人可以看到问题并帮助我在 CLion 中编译这个项目吗? 谢谢

您在 DataStructure.cpp 之后有错误 / 此处:

set(SOURCE_FILES  "Data Structures 1/HW 2/main.cpp"
    "Data Structures 1/HW 2/Creature.cpp" "Data Structures 1/HW 2/Magi.cpp"
    "Data Structures 1/HW 2/DataStructure.cpp/"
    "Data Structures 1/HW 2/library1.cpp")

将其更改为:

  set(SOURCE_FILES  "Data Structures 1/HW 2/main.cpp"
        "Data Structures 1/HW 2/Creature.cpp" "Data Structures 1/HW 2/Magi.cpp"
        "Data Structures 1/HW 2/DataStructure.cpp"
        "Data Structures 1/HW 2/library1.cpp")

然后按以下方式修复您的 add_executable():

add_executable(Besart ${SOURCE_FILES})

无需重复${SOURCE_FILES}的内容。