我不明白为什么XCode在使用
时遇到链接问题 string create_base_uri(string host, int port, string dbname){
std::ostringstream ostr; //output string stream
ostr << port; //use the string stream just like cout,
string port_string = ostr.str();
return "http://" + host + ":" + port_string + "/" + dbname;
}
架构x86_64的未定义符号: “CouchServer :: create_base_uri(std :: __ 1 :: basic_string,std :: __ 1 :: allocator&gt;,int,std :: __ 1 :: basic_string,std :: __ 1 :: allocator&gt;)”,引自: couch_server.o中的CouchServer :: get_document_by_id(std :: __ 1 :: basic_string,std :: __ 1 :: allocator&gt;) ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
有人能帮助我吗?
答案 0 :(得分:1)
您需要定义相对于类的成员函数:
string CouchServer::create_base_uri(string host, int port, string dbname) {
//..
}
相反,你要定义一个自由函数:
string create_base_uri(string host, int port, string dbname) {
//..
}
有趣的是,它编译,因为它没有引用该类的任何其他成员。实际上让它成为一个自由功能可能更好!如果它当前是私有成员,则可以将其放在匿名命名空间中。如果它在其他地方很有用,你可以把它变成一个实用功能。