Я - разработчик C++ noob, в течение нескольких часов играя со следующей проблемой. Надеюсь, кто-то может просветить меня.Как передать аргументы типа строки методам 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)
Как мне обрабатывать строковые аргументы? Мои попытки, кажется, совершенно неправильны здесь.
Привет Феликс
Показать полную ссылку. – trojanfoe
Как вы связались со своей внешней библиотекой? Вы забыли добавить '-lmylib', чтобы связать аргументы? –
Вы хотите включить '', а не ''? –