使用g ++编译Mininet虚拟机时出现以下错误。
error: expected unqualified-id before '&' token
} catch (const std::invalid_argument& ia) {
^
代码:
try {
port = std::stoi(argv[3]);
if (port < 1024 || port > 65535) {
cerr << "Error: port number must be in the range 1024 to 65535";
exit(1);
}
} catch (const std::invalid_argument& ia) {
cerr << "Error: missing or additional arguments: Expected number for port" << endl;
}
在使用相同设置在macOS上编译时,我没有收到错误。删除const或&amp;只会导致另一个错误;执行std::invalid_argument ia
会导致&#34;错误:期望的类型说明符&#34;
由于我无法在我的Mac上复制这个,而这只发生在Mininet虚拟机上,我对原因和潜在的修复都感到茫然。
注意:为了澄清,我今天在虚拟机上运行了sudo apt-get install g++
,我正在使用以下代码编译C ++ 11:`g ++ -std = c ++ 11 -Wall -Wextra -pedantic - O -o code_name code_name.cpp
答案 0 :(得分:-1)
在Mininet的VM上,需要#include <stdexcept>
才能使用问题中详述的功能。在macOS上不需要这个包含文件(以及其他文件),默认情况下包含该文件。
#include <stdexcept>
解决了这个具体问题。