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

Синтаксическая ошибка при использовании конструкции ::ssize_t - C++

Восстановить пароль Регистрация
 
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 16:12     Синтаксическая ошибка при использовании конструкции ::ssize_t #1
Скачал официальную библиотеку Image Magick. Добавил в проект. Не компилится, ругается на синтаксис. Открываю один из хедеров и вижву вот такое
C++
1
2
3
4
5
6
7
// Construct Geometry from specified dimensions
    Geometry(size_t width_,size_t height_,::ssize_t xOff_=0,
      ::ssize_t yOff_=0);
//...
  private:
    ::ssize_t _xOff;
    ::ssize_t _yOff;
Такое во многих файлах. Это нормально? Где неймспейс?) Если да, то что это значит и как это скомпилить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
21.11.2016, 16:26     Синтаксическая ошибка при использовании конструкции ::ssize_t #2
Цитата Сообщение от Bingo_O Посмотреть сообщение
Где неймспейс?
Это обращение к global namespace
Цитата Сообщение от Bingo_O Посмотреть сообщение
ругается на синтаксис.
Что пишет?
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
21.11.2016, 17:24     Синтаксическая ошибка при использовании конструкции ::ssize_t #3
Bingo_O, #include <stddef.h> возможно не хватает где-то.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,637
21.11.2016, 18:06     Синтаксическая ошибка при использовании конструкции ::ssize_t #4
Ну так ssize_t - тип не стандартный. Поэтому компилировать надо именно тем компилятором, который знает, что такое ssize_t. Или доопределять этот тип самостоятельно.
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 18:46  [ТС]     Синтаксическая ошибка при использовании конструкции ::ssize_t #5
DrOffset, TheCalligrapher, мне кажется было бы немного странно доопределять или инклюдить что-то в официальные хедеры. Вроде где-то в файлах библиотеки есть определение ssize_t.

Croessmah, "int недопустимая лексема справа от ::" "синтаксическая ошибка ::"

И вот что странно, чуть ниже в коде есть
C++
1
2
3
4
5
//..
  private:
    ssize_t _x;
    ssize_t _y;
  };
А тут уже :: нету
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
21.11.2016, 18:57     Синтаксическая ошибка при использовании конструкции ::ssize_t #6
Цитата Сообщение от Bingo_O Посмотреть сообщение
int недопустимая лексема справа от ::
Похоже, что по какой-то причине ssize_t определен через define. И после подстановки получается следующее
C++
1
::int _xOff;
что, естественно, неверно. Причина ошибки может быть вовсе не в "официальных" заголовочных файлах, а в окружении твоего компилятора. Ну или в совокупности факторов, например авторы библиотеки не поддерживают используемый тобой компилятор официально. Кстати, обозначить версию компилятора надо было еще в первом сообщении.
Если так, то не будет ничего страшного, если ты уберешь два двоеточия.

Цитата Сообщение от Bingo_O Посмотреть сообщение
мне кажется было бы немного странно доопределять или инклюдить что-то в официальные хедеры
Это ты просто молодой еще.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,637
21.11.2016, 19:04     Синтаксическая ошибка при использовании конструкции ::ssize_t #7
Цитата Сообщение от Bingo_O Посмотреть сообщение
А тут уже :: нету
Ну так, а ошибка в этом месте есть?

Цитата Сообщение от Bingo_O Посмотреть сообщение
Вроде где-то в файлах библиотеки есть определение ssize_t.
В файлах какой библиотеки? Тип ssize_t - это не С и не С++, а исключительно POSIX. Вы компилируетесь на POSIX платформе?
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 19:12  [ТС]     Синтаксическая ошибка при использовании конструкции ::ssize_t #8
Нашел в описании библиотеки такую штуку: "Magick++ doesn’t like to run in Visual Studio’s Debug mode so you have to build as a Release or ImageMagick won’t be happy." Возможно, они это имели в виду. Я собирал в дебаге.

Решил создать чистый проект, в который подключил только "Magick++". Код
C++
1
2
3
4
5
6
#include <Magick++.h>
 
int main(int argc, char** argv)
{
    Magick::InitializeMagick(*argv);
}
Выдает ошибку
"error LNK2001: неразрешенный внешний символ ""void __cdecl Magick::InitializeMagick(char const *)" (?InitializeMagick@Magick@@YAXPBD@Z)" "
"error LNK1120: неразрешенных внешних элементов: 1 "
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
21.11.2016, 19:21     Синтаксическая ошибка при использовании конструкции ::ssize_t #9
Цитата Сообщение от Bingo_O Посмотреть сообщение
Выдает ошибку
Линкер не видит библиотек. Нужно ему объяснить, указать путь к ним и соответствующие lib файлы прописать в настройках.
TheCalligrapher
С чаем беда...
Эксперт С++
 Аватар для TheCalligrapher
2787 / 1433 / 393
Регистрация: 18.10.2014
Сообщений: 2,637
21.11.2016, 19:25     Синтаксическая ошибка при использовании конструкции ::ssize_t #10
Цитата Сообщение от Bingo_O Посмотреть сообщение
Выдает ошибку
"error LNK2001: неразрешенный внешний символ ""void __cdecl Magick::InitializeMagick(char const *)" (?InitializeMagick@Magick@@YAXPBD@Z)" "
"error LNK1120: неразрешенных внешних элементов: 1 "
Ну так а саму библиотеку кто подключать будет?
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 20:31  [ТС]     Синтаксическая ошибка при использовании конструкции ::ssize_t #11
Я проложил в Каталогах VC++ путь к *.lib. Этого мало?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
21.11.2016, 20:50     Синтаксическая ошибка при использовании конструкции ::ssize_t #12
Цитата Сообщение от Bingo_O Посмотреть сообщение
Этого мало?
Укажите и сами библиотеки линкеру
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
22.11.2016, 01:44  [ТС]     Синтаксическая ошибка при использовании конструкции ::ssize_t #13
Да, вроде, нормально. Все равно не хочет.
Миниатюры
Синтаксическая ошибка при использовании конструкции ::ssize_t   Синтаксическая ошибка при использовании конструкции ::ssize_t  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
22.11.2016, 08:31     Синтаксическая ошибка при использовании конструкции ::ssize_t #14
Где указаны сами библиотеки?
Не вижу этого на скринах.
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
22.11.2016, 11:31  [ТС]     Синтаксическая ошибка при использовании конструкции ::ssize_t #15
это?
Миниатюры
Синтаксическая ошибка при использовании конструкции ::ssize_t  
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
23.11.2016, 16:25  [ТС]     Синтаксическая ошибка при использовании конструкции ::ssize_t #16
Croessmah, TheCalligrapher, нету больше версий?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2016, 16:36     Синтаксическая ошибка при использовании конструкции ::ssize_t
Еще ссылки по теме:

Ошибка при использовании gets() C++
C++ Синтаксическая ошибка при инициализации класса
C++ Синтаксическая ошибка при создании библиотеки: __declspec(dllimport)

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11817 / 6796 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
23.11.2016, 16:36     Синтаксическая ошибка при использовании конструкции ::ssize_t #17
Bingo_O, как собирались библиотеки? Каким компилятором?
Ну и т.д. мы ни фига не знаем о окружении, компиляторе, библиотеке.
Yandex
Объявления
23.11.2016, 16:36     Синтаксическая ошибка при использовании конструкции ::ssize_t
Ответ Создать тему
Опции темы

Текущее время: 04:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru