Visual Studio 2010 + 2005

Тема в разделе "MS Visual C++", создана пользователем Dimmuborgir, 11 июл 2012.

  1. Dimmuborgir

    Dimmuborgir Гость

    Здравствуйте, все! Сразу к делу. Есть лайба (lib) написанная на 2005 студии. Ее недавно попробовал использовать человек, у которого стоит студия 2010. Столкнулись с проблеммой линковки. Лайба использует только стандартные виндовые библиотеки (mfc нет). Может у кого были подобные проблеммы и как их решали? Ниже приведен список всех инклудок:

    Код (C++):
    #include <string>
    #include <vector>
    #include <algorithm>
    #include <assert.h>

    #include <winsock.h>
    #pragma comment(lib,"ws2_32.lib")

    #include <complex>
    #include <strstream>

    #include <math.h>
    #include <tchar.h>
    Ошибок выходит много, вот первые две:


    Код (Text):
    Ошибка    2   error LNK2019: ссылка на неразрешенный внешний символ "__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (__imp_??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) в функции "public: void __thiscall Terminal::ClearCommandQueue(bool)" (?ClearCommandQueue@Terminal@@QAEX_N@Z)    D:\PProject_Tmp\BusDriver\BusDriver\BDUBus_D.lib(terminal.obj)  BusDriver

    Ошибка    3   error LNK2001: неразрешенный внешний символ ""__declspec(dllimport) public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (__imp_??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z)"  D:\PProject_Tmp\BusDriver\BusDriver\BDUBus_D.lib(Global.obj)    BusDriver
     
  2. rrrFer

    rrrFer Well-Known Member
    Команда форума C\C++ Team

    Регистрация:
    6 сен 2011
    Сообщения:
    1.324
    Симпатии:
    36
    попробуй создать очень простую библиотеку c единственной функцией и дай тому человеку, у которого какая-то там студия, есть подозрение что вы что-то не так подключаете )
    подозреваю, что компилятор обнаруживает заголовки функций в lib, но их реализации найти не может.
     
  3. Dimmuborgir

    Dimmuborgir Гость

    Можно конечно попробовать, но в ошибках вроде чётко прослеживается ругань на STL-овский string, а не на мои функции.. Дело в том что при точно таком же подключении в созданному проекту в 2005 студии этой лайбы у того же человека проблемм нет.
     
  4. a0z

    a0z Well-Known Member

    Регистрация:
    15 мар 2011
    Сообщения:
    109
    Симпатии:
    0
    Вариант 0: Компилировать как Multithreaded а не Multithreaded Dll. При этом передавать из этой либки или в неё STL-ные объекты нельзя. Нельзя выделять память в либке а освобождать в программе.

    Вариант 1: Перекомпилировать либку под 10 студией. И иметь 2 версии.
     
Загрузка...

Поделиться этой страницей