Как исправить некоторые проблемы с версиями при компиляции кода C ++? - PullRequest
2 голосов
/ 26 марта 2012

Я пытаюсь скомпилировать в Linux файл в http://sourceforge.net/projects/desr/files/Release/desr-0.9.tgz/download.

Когда я запускаю ./configure, все работает гладко, пока я не наберу make.Тогда я получаю следующие ошибки:

In file included from ./string.h:33,
                 from HtmlTokenizer.cpp:24:
/usr/include/c++/4.4/cstring:76: error: ‘::memchr’ has not been declared
/usr/include/c++/4.4/cstring:77: error: ‘::memcmp’ has not been declared
/usr/include/c++/4.4/cstring:78: error: ‘::memcpy’ has not been declared
/usr/include/c++/4.4/cstring:79: error: ‘::memmove’ has not been declared
/usr/include/c++/4.4/cstring:80: error: ‘::memset’ has not been declared
/usr/include/c++/4.4/cstring:81: error: ‘::strcat’ has not been declared
/usr/include/c++/4.4/cstring:82: error: ‘::strcmp’ has not been declared
/usr/include/c++/4.4/cstring:83: error: ‘::strcoll’ has not been declared
/usr/include/c++/4.4/cstring:84: error: ‘::strcpy’ has not been declared
/usr/include/c++/4.4/cstring:85: error: ‘::strcspn’ has not been declared
/usr/include/c++/4.4/cstring:86: error: ‘::strerror’ has not been declared
/usr/include/c++/4.4/cstring:87: error: ‘::strlen’ has not been declared
/usr/include/c++/4.4/cstring:88: error: ‘::strncat’ has not been declared
/usr/include/c++/4.4/cstring:89: error: ‘::strncmp’ has not been declared
/usr/include/c++/4.4/cstring:90: error: ‘::strncpy’ has not been declared
/usr/include/c++/4.4/cstring:91: error: ‘::strspn’ has not been declared
/usr/include/c++/4.4/cstring:92: error: ‘::strtok’ has not been declared
/usr/include/c++/4.4/cstring:93: error: ‘::strxfrm’ has not been declared
/usr/include/c++/4.4/cstring:94: error: ‘::strchr’ has not been declared
/usr/include/c++/4.4/cstring:95: error: ‘::strpbrk’ has not been declared
/usr/include/c++/4.4/cstring:96: error: ‘::strrchr’ has not been declared
/usr/include/c++/4.4/cstring:97: error: ‘::strstr’ has not been declared

Есть идеи, в чем может быть проблема?

Вот g ++ --version:

g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Ответы [ 2 ]

4 голосов
/ 26 марта 2012

Когда есть

 #include <cstring> 

компилятор g ++ должен поместить объявления, которые он сам включает, в глобальные пространства имен std :: AND. По какой-то причине это выглядит так, как будто он этого не делает. Попробуйте заменить один экземпляр strcpy на std :: strcpy.

3 голосов
/ 28 июня 2012

Я столкнулся с подобной проблемой.В моем случае порядок включения файла заголовка был следующим:

#include <string> // for string class
#include <cstring> // for memcpy()

При этом я столкнулся с вышеуказанными ошибками, о которых вы упомянули в gcc 4.6.3.

Переключение порядка включенийработал ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...