长话短说,我想将.h和.cpp文件放在子文件夹(分别包括include和src)中,并在main.cpp文件中引用它们,但是出现以下错误:main.cpp:(.text+0x47): undefined reference to `Kmer::Kmer()'.使用时进行编译:g++ -I /path/to/MyFolder/include main.cpp
我的文件结构如下:

  • MyFolder
  • main.cpp
  • 包括
  • Kmer.h

  • src
  • Kmer.cpp


  • //main.cpp
    #include <iostream>
    #include "Kmer.h"
    using namespace std;
    
    int main() {
        Kmer k;
        return 0;
    };
    
    //Kmer.h
    #pragma once
    
    class Kmer{
      public:
        Kmer();
      protected:
      private:
    };
    
    //Kmer.cpp
    #include "Kmer.h"
    #include <iostream>
    using namespace std;
    
    Kmer::Kmer(){
      // code here
      cout << "Kmer created" << endl;
    }
    
    感谢您的帮助!

    最佳答案

    您没有在编译Khmer.cpp。您需要将其添加到您的g++编译行中

    g++ -o <YOUR APPLICATION NAME> -I /path/to/MyFolder/include main.cpp src/Khmer.cpp
    

    关于c++ - 在子文件夹中编译.h和.cpp时的C++ undefined reference ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/65327284/

    10-12 02:07