неопределенная ссылка на простой код ctor и dctor

Этот простой кусок кода действительно доставляет мне трудные времена, поэтому кто-нибудь может быть чем-то вроде и объяснить мне, что может быть не так? У меня есть простой файл cpp, который использует класс из заголовочного файла.

lib.h

namespace tnamespace {
class base{
virtual ~base() {};
};
class test/*: public base*/ {
public:

test();
test();
};
}

lib.cxx

#include "lib.h"
namespace tnamespace{
test::test() {};
test::~test() {}
}

start.cpp

#include <iostream>
#include <lib.h>

int main() {
tnamespace::test d;
return 0;
}

я использую gcc версии 4.1.2 20080704 и компилирую проект с

g++ start.cpp -I./ext_lib -Wall

получил следующую ошибку компоновщика

/tmp/ccK2v6GD.o: В функции `main ‘:

start.cpp :(. text + 0x7a): неопределенная ссылка на `tnamespace :: test :: test () ‘

start.cpp :(. text + 0x88): неопределенная ссылка на `tnamespace :: test :: ~ test () ‘

collect2: ld вернул 1 статус выхода

мне удалось найти решение. Я забыл собрать мою библиотеку. Правильная команда g ++

g ++ start.cpp ext_lib / lib.cxx -I./ext_lib -Wall

2

Решение

Вы не скомпилировали lib.cxx, поэтому символы не экспортируются.

g++ start.cpp lib.cxx -I./ext_lib -Wall
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]