Помогите новичку.
Установил mingw, wxwidgets, codeblocks, msys. Всё работает прекрасно, НО в mingw нет wstring, wcout...
Решил использовать stlport. Уже две недели пытаюсь собрать с ним простейшую програмку.
Собираю stlport:
U:\cpp\stlport\build\lib>make -f gcc.mak
Получаю libstlport.5.2.dll в U:\cpp\stlport\build\lib\obj\gcc\so.
Далее, пытаюсь собрать простую програмку.
build.bat:
@echo on
set PATH=u:\cpp\mingw\bin;%PATH%
set PATH=u:\cpp\msys\bin;%PATH%
g++ -c -I u:\cpp\stlport\stlport main.cpp -o main.o
g++ -o main.exe main.o -L u:\cpp\stlport\build\lib\obj\gcc\so -l libstlport.5.2
pause
Код main.cpp:
#include <cstring>
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
wstring x = L"wide string";
wcout<<x.c_str()<<endl;
}
Компилируется нормально, но при сборке вылазит всяка бяка:
U:\cpp\pro\stl_port_test>set PATH=u:\cpp\mingw\bin;d:\profile\short-links;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\TortoiseSVN\bin
U:\cpp\pro\stl_port_test>set PATH=u:\cpp\msys\bin;u:\cpp\mingw\bin;d:\profile\short-links;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\TortoiseSVN\bin
U:\cpp\pro\stl_port_test>g++ -c -I u:\cpp\stlport\stlport main.cpp -o main.o
U:\cpp\pro\stl_port_test>g++ -o main.exe main.o -L u:\cpp\stlport\build\lib\obj\gcc\so -l libstlport.5.2
main.o:main.cpp:(.text+0xf6): undefined reference to `_imp___ZN11stlpmtx_std5wcoutE'
main.o:main.cpp:(.text$_ZN11stlpmtx_std12__node_alloc10deallocateEPvj[stlpmtx_std::__node_alloc::deallocate(void*, unsigned int)]+0x2a): undefined reference to `_imp___ZN11stlpmtx_std12__node_alloc13_M_deallocateEPvj'
main.o:main.cpp:(.text$_ZNK11stlpmtx_std4priv12_String_baseIwNS_9allocatorIwEEE21_M_throw_length_errorEv[stlpmtx_std::priv::_String_base<wchar_t, stlpmtx_std::allocator<wchar_t> >::_M_throw_length_error() const]+0xe): undefined reference to `_imp___ZN11stlpmtx_std24__stl_throw_length_errorEPKc'
main.o:main.cpp:(.text$_ZN11stlpmtx_std8ios_base23_M_check_exception_maskEv[stlpmtx_std::ios_base::_M_check_exception_mask()]+0x1d): undefined reference to `_imp___ZN11stlpmtx_std8ios_base16_M_throw_failureEv'
main.o:main.cpp:(.text$_ZN11stlpmtx_std12__node_alloc8allocateERj[stlpmtx_std::__node_alloc::allocate(unsigned int&)]+0x2a): undefined reference to `_imp___ZN11stlpmtx_std12__node_alloc11_M_allocateERj'
collect2: ld returned 1 exit status
U:\cpp\pro\stl_port_test>pause
Для продолжения нажмите любую клавишу . . .
Подскажите, пожалуйста, в чём проблема, куда копать...
Здравствуйте, Аноним, Вы писали:
А>Друзья, неужели никто не использовал stlport?
А>Киньтесь хоть ссылочкой, что курить...
http://www.nabble.com/Building-STLport-on-MinGW-td13433840.html
попробуй почитать — обсуждается как раз связка StlPort, mingw, wxWidgets. Возможно поможет пересборка StlPort с ключами, указанными в этом треде
Здравствуйте, unix_hater, Вы писали:
> http://www.nabble.com/Building-STLport-on-MinGW-td13433840.html
> попробуй почитать — обсуждается как раз связка StlPort, mingw, wxWidgets. Возможно поможет пересборка StlPort с ключами, указанными в этом треде
Там написано:
> cd c:/STLport/build/lib
> make -f gcc.mak depend
> make -f gcc.mak install
this is the good one
У меня последняя команда не выполняется:
F:\stlport\build\lib>make -f gcc.mak install
make: Nothing to be done for `install'.
Здравствуйте, just_ice, Вы писали:
_>У меня последняя команда не выполняется:
_>_>F:\stlport\build\lib>make -f gcc.mak install
_>make: Nothing to be done for `install'.
_>
Это make тебе сказал, что всё уже собрано
Для начала нужно удалить прежде собранные бинарники
Как-то так, например:
F:\stlport\build\lib>make -f gcc.mak clean