c ++编译后出现错误
c++ Getting error after compile
这是我的 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 时我得到这个错误。
The procedure entry point
_ZNSt7_cxx1112basic_stringlcSt11char_traitslcESalcEEC1EPKcRKS^_ could not be located in the dynamic link libary c:\"My project path"
(所有文件都在同一文件夹中。)
我用没有字符串的 int 编译它工作正常我猜这是 #include <string>
的错误
在 Mingw 中,您必须明确指定 libgcc libstdc++ 库。使用以下命令
g++ Tokenizer.cpp main.cpp -o main -static-libgcc -static-libstdc++
这是我的 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 时我得到这个错误。
The procedure entry point _ZNSt7_cxx1112basic_stringlcSt11char_traitslcESalcEEC1EPKcRKS^_ could not be located in the dynamic link libary c:\"My project path"
(所有文件都在同一文件夹中。)
我用没有字符串的 int 编译它工作正常我猜这是 #include <string>
在 Mingw 中,您必须明确指定 libgcc libstdc++ 库。使用以下命令
g++ Tokenizer.cpp main.cpp -o main -static-libgcc -static-libstdc++