![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
mantissa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 23.10.2007 Репутация: нет Всего: 1 |
Привет великий All!
поскажите плиз, может кто сталкивался... код на С++ с использованием потоков, векторов и строк компилю в lib*****.a g++ -fPIC -c ./../*.cpp -I$(Ph_PlatHdr) g++ -shared -o $(NmLibSoMT102) *.o -lstdc++ или компилю и линкую в lib*****.so g++ -c ./../*.cpp -I$(Ph_PlatHdr) ar -r $(NmLibMT102) *.o моя функция int TreatMes_R(void *p1, void *p2) {...} прекрасно компилиться, но превращается в ... 00000000001070c0 D pArField_MT102_01 00000000001070e0 D pArField_MT102_02 0000000000107100 D pArField_MT102_03 0000000000107120 D pArField_MT102_1N U printf@@GLIBC_2.2.5 U qListSubFun U stdout@@GLIBC_2.2.5 U strlen@@GLIBC_2.2.5 U strncmp@@GLIBC_2.2.5 U strstr@@GLIBC_2.2.5 0000000000005922 t __tcf_0 000000000000593c t __tcf_1 U _Unwind_Resume@@GCC_3.0 00000000001080a0 B vData 0000000000003ea0 T _Z10TreatMes_RPvS_ <<<-------- вот во что она превратилась! 0000000000004fb6 T _Z13CompareFieldsPcPvRS_Ri 0000000000005338 T _Z14TreatMT102F72APc 00000000000049e4 T _Z18After_Block4_MT102PvP11MT102_All_q 0000000000005870 t _Z41__static_initialization_and_destruction_0ii 00000000000055b8 T _Z6SeeMemPvm 00000000000052c8 T _Z9ClearDataP11DescField_t 000000000000675e W _ZdlPvS_ 0000000000005e52 W _ZN9CData2SQLaSERKS_ ... компиляция проекта не идет... линковщик не м. найти TreatMes_R но если в проекте подменить имя на '_Z10TreatMes_RPvS_ ' то все прекрасно работает.. но это ведь называется сделать через ж@#у?? пока близиться 1-е тестирование брошу так ![]() а то мои последователи на меня матом потом ругаться будут... пытаясь разобраться в этой чертовщине... с ув. BSD Добавлено через 2 минуты и 7 секунд кстати... если код просто Си-шный никаких проблем и подмен имен не происходит |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
компилятор С++ преобразует имена согласно сигнатуре и возвращаемому значению по определенному алгоритму (для обеспечения возможности перегрузки функций и т. д)
если хочешь использовать некоторые функции библиотеки, написанной на С++, в проекте на С, пометь их через extern "C"
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |