Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
#1

undefined symbol: * in Unknown on line 0 - C++

23.07.2013, 00:34. Просмотров 657. Ответов 6
Метки нет (Все метки)

Вобщем написал некий модуль для php, он корректно скомпилировался но под линукс при запуске php пишет
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/mylib.so' - /usr/lib/php5/20100525+lfs/mylib.so: undefined symbol: _ZNK4Data10strtolowerEPKc in Unknown on line 0
Если линковка прошла успешно, то что это за ошибка во время выполнения? Судя по всему ругается на мой метод Data::strtolower()
data.h
C++
1
2
3
4
5
6
7
class Data
{
 
public:
     // ...
     char *strtolower  ( const char * const ) const;
};
data.cpp
C++
1
2
3
4
5
6
7
8
9
inline char *Data::strtolower(const char *const str) const
{
   char c, *b = estrdup(str), *s = b;
   while(*s != '\0' && (c = *s))
   {
      *s++ = (c >= 0x41 && c <= 0x5a) ? c + 0x20 : c;
   }
   return b;
}
Подскажите почему так и как исправить? dll'ка под win7 работает прекрасно. Если нужно могу ещё Makefile скинуть, но если компиляция прошла успешно наверное он не нужен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.07.2013, 00:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос undefined symbol: * in Unknown on line 0 (C++):

Undefined symbol - C++
Здравствуйте! При линковке в Borland C++ 3.0 возникают ошибки: Undefined symbol _SELECT in module ... Undefined symbol _SEND in...

Очередь (undefined symbol) - C++
#include &lt;vcl.h&gt; #pragma hdrstop #include &lt;conio.h&gt; #include &lt;iostream.h&gt; #include &lt;fstream.h&gt; //---- struct oku { string...

Ошибка E2451 Undefined symbol 'i' - C++
Помогите найти ошибку в программе #include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; struct Train { char*...

Undefined symbol string (STL) - C++
подключаю следующие библиотеки #include &lt;iostream.h&gt; #include &lt;vector.h&gt; #include &lt;string.h&gt; using namespace std; void...

Linker Error: undefined symbol - C++
Прога компилируется без ошибок, когда запускается, то появляется 10 ошибок. И все одного характера Linker Error: undefined symbol. ...

Undefined symbol немогу запустить программу - C++
у меня не получается правильно обявить переменные //--------------------------------------------------------------------------- ...

6
ValeryS
Модератор
6682 / 5091 / 477
Регистрация: 14.02.2011
Сообщений: 17,092
23.07.2013, 00:44 #2
может тебе inline выбросить?
честно говоря я не могу себе представить как он функцию(код) будет подставлять из уже скомпилированого модуля
0
OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
23.07.2013, 10:40  [ТС] #3
ValeryS, это вариант, но ведь этот метод используется только внутри либы, да и + к тому там есть другие инлайн методы которые стоят раньше в коде и вызывабтся раньше но на них не ругается. Ну я позже попробую и отпишусь.
0
OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
24.07.2013, 21:30  [ТС] #4
нет, убрать inline не помогло. Есть ещё варианты?
0
ValeryS
Модератор
6682 / 5091 / 477
Регистрация: 14.02.2011
Сообщений: 17,092
24.07.2013, 21:37 #5
есть еще варианты с искажением имен
Цитата Сообщение от OrmaJever Посмотреть сообщение
_ZNK4Data10strtolowerEPKc
но это тонкая тема
каждый компилятор искажает имена по своему, и обычно в широкий доступ эта информация не поступает
открой свою библиотеку например в PEExplorer и посмотри в разделе экспорт как твоя функция стала называться
0
OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
24.07.2013, 22:46  [ТС] #6
PEExplorer не захотел открывать линуксовые либы. Я открыл в обычном редакторе и нашёл там функцию имено с таким названием. Кстате как я сказал выше действие происходит в дебиане, на винде нормально компилится и работает.
0
ValeryS
Модератор
6682 / 5091 / 477
Регистрация: 14.02.2011
Сообщений: 17,092
24.07.2013, 23:02 #7
Цитата Сообщение от OrmaJever Посмотреть сообщение
Кстате как я сказал выше действие происходит в дебиане, на винде нормально компилится и работает.
может тогда проблемы с линуксом
попробуй задать вопрос в той ветке
я честно говоря не очень силен в системе линуксов
попробуй на другом линуксе другая версия (например федору) сборка
тогда узнаешь проблема глобальная или локальная
0
24.07.2013, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2013, 23:02
Привет! Вот еще темы с ответами:

Почему ошибка? Undefined symbol 'Application' - C++
//--------------------------------------------------------------------------- #pragma hdrstop #include &lt;iostream&gt; #include...

Linker Error: Undefined symbol istream.. - C++
Linker Error: Undefined symbol istream::getline(char near*, &gt; int, unsigned char) in module program.cpp. Пишет при попытке запуска...

Веб парсинг и ошибка Undefined symbol WinHttpClient - C++
Возникла ошибка в c++ builder когда попытался выполнить этот код: WinHttpClient client(L&quot;http://www.xxxxxxx.com/&quot;); ...

Linker Error: Undefined symbol _getimage in module - C++
Что это за ошибка и как ее исправить? Linker Error: Undefined symbol _getimage in module Linker Error: Undefined symbol...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru