我是一个 C++ 菜鸟,几个小时以来一直在摆弄以下问题。希望有人能启发我。
我有一个内容如下的 cpp 文件:
test.cpp 文件内容
#include <iostream>
#include <exception>
#include <stdlib.h>
#include <string.h>
using std::cin; using std::endl;
using std::string;
string foobar(string bar) {
return "foo" + bar;
}
int main(int argc, char* argv[])
{
string bar = "bar";
System::convCout << "Foobar: " << foobar(bar) << endl;
}
这个编译和运行良好。现在我想把 foobar 放到一个外部库中:
mylib.h 文件内容
string foobar(string bar);
mylib.cpp 文件内容
#include <string.h>
using std::cin; using std::endl;
using std::string;
string foobar(string bar) {
return "foo" + bar;
}
test.cpp 文件内容
#include <iostream>
#include <exception>
#include <stdlib.h>
#include "mylib.h"
int main(int argc, char* argv[])
{
string bar = "bar";
System::convCout << "Foobar: " << foobar(bar) << endl;
}
我调整了我的 Makefile,以便 test.cpp 编译并链接 mylib,但我总是遇到错误:
test.cpp::8 undefined reference to `foobar(std::string)
我如何处理字符串参数?我的尝试在这里似乎完全错误。
问候菲利克斯