【问题标题】:c++ Getting error after compilec++编译后报错
【发布时间】:2018-06-19 11:29:01
【问题描述】:

这是我的 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;
}

这是我的 Tokenizer.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:\"My project path" 中找到

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

我用不带字符串的 int 编译它工作正常我猜这是#include &lt;string&gt; 的错误

【问题讨论】:

  • 这是什么工具链/环境?鸣?赛格温?其他?
  • 我正在使用 mingw。
  • OK - 为您添加了mingw 标签。
  • @Ron 我是新人,我不知道如何访问,当我使用“g++ Tokenizer.cpp main.cpp”时,它只会完成并创建一个在 cmd 上没有任何内容的 a.exe
  • 可以尝试用“g++ Tokenizer.cpp main.cpp -std=c++11”编译

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


【解决方案1】:

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

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

【讨论】:

  • 如果这能解决您的问题,请接受答案。这对我有用。
猜你喜欢
  • 2022-11-16
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2016-08-27
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 2020-11-22
相关资源
最近更新 更多