【发布时间】:2020-05-11 17:28:07
【问题描述】:
我正在学习 C++ 并遵循教程,但在构建初始代码中的代码时遇到了问题。
这是引发此错误的源代码文件。
#include "linux_parser.h"
#include <dirent.h>
#include <unistd.h>
#include <istream>
#include <string>
#include <vector>
using std::stof;
using std::string;
using std::to_string;
using std::vector;
// DONE: An example of how to read data from the filesystem
string LinuxParser::OperatingSystem() {
string line;
string key;
string value;
std::ifstream filestream(kOSPath);
if (filestream.is_open()) {
while (std::getline(filestream, line)) {
std::replace(line.begin(), line.end(), ' ', '_');
std::replace(line.begin(), line.end(), '=', ' ');
std::replace(line.begin(), line.end(), '"', ' ');
std::istringstream linestream(line);
while (linestream >> key >> value) {
if (key == "PRETTY_NAME") {
std::replace(value.begin(), value.end(), '_', ' ');
return value;
}
}
}
}
return value;
}
以下是我在 mac Catalina 本地运行 make build 时抛出的错误。
Scanning dependencies of target monitor
[ 12%] Building CXX object CMakeFiles/monitor.dir/src/format.cpp.o
[ 25%] Building CXX object CMakeFiles/monitor.dir/src/linux_parser.cpp.o
/Users/Documents/github/cpp/src/linux_parser.cpp:25:26: error: implicit instantiation of undefined template
'std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >'
std::istringstream linestream(line);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iosfwd:133:32: note: template is declared here
class _LIBCPP_TEMPLATE_VIS basic_istringstream;
^
/Users/Documents/github/cpp/src/linux_parser.cpp:44:24: error: implicit instantiation of undefined template
'std::__1::basic_istringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >'
std::istringstream linestream(line);
^
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iosfwd:133:32: note: template is declared here
class _LIBCPP_TEMPLATE_VIS basic_istringstream;
^
2 errors generated.
make[3]: *** [CMakeFiles/monitor.dir/src/linux_parser.cpp.o] Error 1
make[2]: *** [CMakeFiles/monitor.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [build] Error 2
【问题讨论】:
标签: c++ build compiler-errors