c ++编译后出现错误

时间:2018-06-19 11:29:01

标签: c++ windows dll g++ mingw

这是我的main.cpp

#include <iostream>
#include <string>
#include "Tokenizer.h"
using namespace std;

int input;

int main(int argc, char const *argv[]){
    Tokenizer obj("yeet");
    cout << obj.getString();
    cin >> input;
return 0;
}

这是我的令牌生成器。h

#ifndef TOKENIZER_H
#define TOKENIZER_H
#include <string>

class Tokenizer{
    public:
        Tokenizer(std::string m);
        std::string getString();
    protected:
    private:
        std::string token;
};

#endif // TOKENIZER_H

这是我的Tokenizer.cpp

#include "Tokenizer.h"
#include <string>

Tokenizer::Tokenizer(std::string m){
    token=m;
   //code 
}

std::string Tokenizer::getString(){
    return token;
}

当我使用g ++编译时,它工作正常,当我打开a.exe时,出现此错误。

  

过程入口点   _ZNSt7_cxx1112basic_stringlcSt11char_traitslcESalcEEC1EPKcRKS ^ _不在动态链接库c:\“我的项目路径”中

(所有文件都在同一文件夹中。)

我使用不带字符串的int进行编译,效果很好,我猜这是#include <string>

的错误

1 个答案:

答案 0 :(得分:2)

在Mingw中,您必须显式指定libgcc libstdc ++库。使用以下命令

g++ Tokenizer.cpp main.cpp -o main -static-libgcc -static-libstdc++