Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по BOOST, Какую библиотеку подключить? 
:(
    Опции темы
Dark Elf
  Дата 29.10.2005, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



Вылазят 3 ошибки:

Ошибка 1. FreeCNC error LNK2019: unresolved external symbol "public: __thiscall Talkback::Talkback(void)" (??0Talkback@@QAE@XZ) referenced in function "public: class boost::shared_ptr<class Talkback> __thiscall UnitAndStructurePool::getTalkback(char const *)" (?getTalkback@UnitAndStructurePool@@QAE?AV?$shared_ptr@VTalkback@@@boost@@PBD@Z)
Ошибка 2. FreeCNC error LNK2019: unresolved external symbol "public: char const * __thiscall Talkback::getRandTalk(enum TalkbackType)" (?getRandTalk@Talkback@@QAEPBDW4TalkbackType@@@Z) referenced in function "public: char const * __thiscall UnitType::getRandTalk(enum TalkbackType)const " (?getRandTalk@UnitType@@QBEPBDW4TalkbackType@@@Z)
Ошибка 3. FreeCNC error LNK2019: unresolved external symbol "public: void __thiscall Talkback::load(class _STL::basic_string<char,class _STL::char_traits<char>,class _STL::allocator<char> >,class boost::shared_ptr<class INIFile>)" (?load@Talkback@@QAEXV?$basic_string@DV?$char_traits@D@_STL@@V?$allocator@D@2@@_STL@@V?$shared_ptr@VINIFile@@@boost@@@Z) referenced in function "public: class boost::shared_ptr<class Talkback> __thiscall UnitAndStructurePool::getTalkback(char const *)" (?getTalkback@UnitAndStructurePool@@QAE?AV?$shared_ptr@VTalkback@@@boost@@PBD@Z)

Из них видно что линкер ругается на boost::shared_ptr но я не нашёл соответствующий ему файл .lib (ни для boost::shared_ptr ни для boost::smart_ptr)

Кто-нибудь знает что нужно подключить чтобы линкер перестал ругаться?

Заранее благодарен за ответ



--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
LPBOY
Дата 29.10.2005, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 12.7.2005

Репутация: 20
Всего: 20



В бусте почти весь код шаблонный, поэтому *.lib файлов быть не должно (как я понимаю).
Я просто поставил папку boost в include, подключил #include <boost/shared_ptr.hpp> и все работает. Покажи код...
Добавлено @ 19:58
А какой компилятор?
--------------------
Каждый человек по-своему прав, а по-моему нет...
PM MAIL   Вверх
Dark Elf
Дата 29.10.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



Спасибо за ответ

Компилятор MSVC 7.1

Вообще там shared_ptr используется для ini-файлов

Типа
Код

shared_ptr<INIFile> filesini;

где INIFile это класс:

Код

class INIFile
{
public:
    explicit INIFile(const char* filename);
    ~INIFile();

    /// @TODO Would be nice if there was a version that returned a non-copy.
    char* readString(const char* section, const char* value);
    char* readString(const char* section, const char* value, const char* deflt);

    int readInt(const char* section, const char* value, Uint32 deflt);
    int readInt(const char* section, const char* value);

    INIKey readKeyValue(const char* section, Uint32 keynum);
    INIKey readIndexedKeyValue(const char* section, Uint32 keynum, const char* prefix=0);
    std::string readSection(Uint32 secnum);
private:
    std::map<std::string, INISection> inidata;
};



--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
LPBOY
Дата 29.10.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 12.7.2005

Репутация: 20
Всего: 20



У меня прекрасно скомпилировалось. В чем проблема?
Код

#include <map>
#include <boost/shared_ptr.hpp>

typedef unsigned Uint32;

typedef int INIKey;
typedef int INISection;

class INIFile
{
public:
    explicit INIFile(const char* filename);
    ~INIFile();
    /// @TODO Would be nice if there was a version that returned a non-copy.
    char* readString(const char* section, const char* value);
    char* readString(const char* section, const char* value, const char* deflt);
    int readInt(const char* section, const char* value, Uint32 deflt);
    int readInt(const char* section, const char* value);
    INIKey readKeyValue(const char* section, Uint32 keynum);
    INIKey readIndexedKeyValue(const char* section, Uint32 keynum, const char* prefix=0);
    std::string readSection(Uint32 secnum);
    private:
    std::map<std::string, INISection> inidata;
};

int _tmain(int argc, _TCHAR* argv[])
{
    boost::shared_ptr<INIFile> f;
    return 0;
}

--------------------
Каждый человек по-своему прав, а по-моему нет...
PM MAIL   Вверх
Dark Elf
Дата 29.10.2005, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



Да вот чёрт его знает в чём проблема.... как видно из моего поста №1 выдаёт всякую фигню.

Код взят отсюда - http://freecnc-sf.holarse.net/

Я просто свою кроссплатформенную игруху иногда пишу и хочу посмотреть как другие кроссплатформенные игры сделаны


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
Dark Elf
Дата 29.10.2005, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 26.12.2003
Где: Брисбен

Репутация: 9
Всего: 10



Судя по ошибкам проблема в классе TalkBack но я не могу понять в чём проблема:

Код

#ifndef TALKBACK_H
#define TALKBACK_H

#include <map>
#include <string>
#include <vector>
#include "common.h"

class Talkback;
typedef shared_ptr<Talkback> TalkbackPtr;

enum TalkbackType {
    TB_report, TB_ack, TB_atkun, TB_atkst, TB_die, TB_postkill, TB_invalid
};

class Talkback
{
public:
    Talkback();
    void load(std::string talkback, shared_ptr<INIFile> tbini);
    const char* getRandTalk(TalkbackType type);
private:
    Talkback(const Talkback&);
    Talkback& operator=(const Talkback&);

    static std::map<std::string, TalkbackType> talktype;
    static bool talktype_init;

    typedef std::map<TalkbackType, std::vector<std::string> > t_talkstore;
    t_talkstore talkstore;

    void merge(TalkbackPtr mergee);
    std::vector<std::string>& getTypeVector(TalkbackType type);
    TalkbackType getTypeNum(std::string name);
};

#endif


Вопрос снят откомпилил и запустил smile

Спасибо LPBOY smile

Это сообщение отредактировал(а) Dark Elf - 29.10.2005, 21:10


--------------------
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2433 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.