【发布时间】:2020-01-10 02:42:17
【问题描述】:
我正在尝试在 mac 上编译一个用 C++ 编写的代码,并且有一个函数
tuple<string, string, int> getURL(const string& url, const function<void(CURL*)>& opts)
{...}
有错误
no template named 'function'
...int> getURL(const string& url, const funct...
^
我尝试修改函数标题。之后我可以编译该模块,但编译器无法与其他模块链接:
"getURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::function<void (void*)> const&)", referenced from:
CensysScanner::getHostInfo(Host*) in CensysScanner.cpp.o
DebianLookup::FindVulnerability(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpSys, double) in DebianLookup.cpp.o
DebianLookup::GetChangelog(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpSys, double) in DebianLookup.cpp.o
EnterpriseLinuxLookup::FindVulnerability(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpSys, double) in EnterpriseLinuxLookup.cpp.o
EnterpriseLinuxLookup::GetChangelog(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, OpSys, double) in EnterpriseLinuxLookup.cpp.o
LooquerScanner::getHostInfo(Host*) in LooquerScanner.cpp.o
ShodanScanner::getHostInfo(Host*) in ShodanScanner.cpp.o
...
我还包含了功能模块 (#include <functional>),我正在使用 std 命名空间 (using namespace std;)。
【问题讨论】:
-
您可能无法为此创建minimal reproducible example,尽管这可能会很困难。好消息是,当你这样做时,你就会知道答案。
-
你#include
<functional>了吗? -
我已经包含了
。 -
@buduboti 您现在要问的是两个错误中的哪一个?编译错误还是链接器错误?你说你修改了代码,你是用什么方式修改的?