我想編譯我的類,我得到以下結果。如何解決架構x86_64的未定義符號
g++ test.cpp -lconfig++ -stdlib=libstdc++
Undefined symbols for architecture x86_64:
"CommandParser::parseCommand(std::string)", referenced from:
_main in test-8f6e3f.o
"CommandParser::CommandParser()", referenced from:
_main in test-8f6e3f.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
這是我想要編譯類:
#include "commandparser.h"
using namespace libconfig;
CommandParser::CommandParser(string configFile){
this->configFile = configFile;
}
CommandParser::CommandParser(){
this->configFile = CONFIG_FILE_NAME;
}
string CommandParser::parseCommand(string cmd){
Config cfg;
try{
cfg.readFile(this->configFile.c_str());
}
catch (const FileIOException &fi){
cerr << "I/O error while reading file." << std::endl;
exit(1);
}
catch (const ParseException &pe){
cerr << "Parse error at " << pe.getFile() << ":" << pe.getLine()
<< " - " << pe.getError() << endl;
exit(1);
}
try{
string path = cfg.lookup(cmd);
cout << "The path to the script is: " << path << endl;
return path;
}
catch(const SettingNotFoundException &e){
cerr << "No command with the name '"<<cmd<<"'"<<endl;
exit(1);
}
}
我怎樣才能解決這個問題,並讓代碼編譯? 我正在運行Mac OSX 10.9。
並聲明所有這些在你的.h然後包括你的主要的.H? –