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

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

Войти
Регистрация
Восстановить пароль
 
 
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
#1

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

21.11.2016, 16:12. Просмотров 258. Ответов 16
Метки нет (Все метки)

Скачал официальную библиотеку 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;
Такое во многих файлах. Это нормально? Где неймспейс?) Если да, то что это значит и как это скомпилить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2016, 16:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Синтаксическая ошибка при использовании конструкции ::ssize_t (C++):

Ошибки при использовании конструкции if-else. - C++
Всех с наступающим! Ребята, подскажите в чем ошибка?

Синтаксическая ошибка при инициализации класса - C++
Ругается на инициализацию списком struct Cord { int x=0, y=0, z=0; }; class Point { public:

Синтаксическая ошибка при определении массива - C++
Не определяется массив int choiceLevel (); int main () { string answer; int level= choiceLevel (); while (answer!="exit") {...

Синтаксическая ошибка при создании проекта CUDA - C++
Возможно кто то сталкивался с такой проблемой? Помогите её решить. kotik-begemotik, перепечатывайте код на форум.

Синтаксическая ошибка при создании библиотеки: __declspec(dllimport) - C++
Итак, братья-кролики , создаю я дллку с таким вот кодом , а мне ошибочку все время не понятную выбивает. Подсобите с решением. #ifndef...

Синтаксическая ошибка при определении метода перегруженного оператора,за классом - C++
Есть два класса. Point1 и Pointer1 Синтаксическая Ошибка в Pointer1.cpp в перегрузке операторов. Point1.h #pragma once ...

16
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
21.11.2016, 16:26 #2
Цитата Сообщение от Bingo_O Посмотреть сообщение
Где неймспейс?
Это обращение к global namespace
Цитата Сообщение от Bingo_O Посмотреть сообщение
ругается на синтаксис.
Что пишет?
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
21.11.2016, 17:24 #3
Bingo_O, #include <stddef.h> возможно не хватает где-то.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3911 / 2148 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
21.11.2016, 18:06 #4
Ну так ssize_t - тип не стандартный. Поэтому компилировать надо именно тем компилятором, который знает, что такое ssize_t. Или доопределять этот тип самостоятельно.
0
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 18:46  [ТС] #5
DrOffset, TheCalligrapher, мне кажется было бы немного странно доопределять или инклюдить что-то в официальные хедеры. Вроде где-то в файлах библиотеки есть определение ssize_t.

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

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

Цитата Сообщение от Bingo_O Посмотреть сообщение
мне кажется было бы немного странно доопределять или инклюдить что-то в официальные хедеры
Это ты просто молодой еще.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3911 / 2148 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
21.11.2016, 19:04 #7
Цитата Сообщение от Bingo_O Посмотреть сообщение
А тут уже :: нету
Ну так, а ошибка в этом месте есть?

Цитата Сообщение от Bingo_O Посмотреть сообщение
Вроде где-то в файлах библиотеки есть определение ssize_t.
В файлах какой библиотеки? Тип ssize_t - это не С и не С++, а исключительно POSIX. Вы компилируетесь на POSIX платформе?
0
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 19:12  [ТС] #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 "
0
DrOffset
7351 / 4451 / 1009
Регистрация: 30.01.2014
Сообщений: 7,292
21.11.2016, 19:21 #9
Цитата Сообщение от Bingo_O Посмотреть сообщение
Выдает ошибку
Линкер не видит библиотек. Нужно ему объяснить, указать путь к ним и соответствующие lib файлы прописать в настройках.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3911 / 2148 / 549
Регистрация: 18.10.2014
Сообщений: 3,756
21.11.2016, 19:25 #10
Цитата Сообщение от Bingo_O Посмотреть сообщение
Выдает ошибку
"error LNK2001: неразрешенный внешний символ ""void __cdecl Magick::InitializeMagick(char const *)" (?InitializeMagick@Magick@@YAXPBD@Z)" "
"error LNK1120: неразрешенных внешних элементов: 1 "
Ну так а саму библиотеку кто подключать будет?
0
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
21.11.2016, 20:31  [ТС] #11
Я проложил в Каталогах VC++ путь к *.lib. Этого мало?
0
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
21.11.2016, 20:50 #12
Цитата Сообщение от Bingo_O Посмотреть сообщение
Этого мало?
Укажите и сами библиотеки линкеру
0
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
22.11.2016, 01:44  [ТС] #13
Да, вроде, нормально. Все равно не хочет.
0
Миниатюры
Синтаксическая ошибка при использовании конструкции ::ssize_t   Синтаксическая ошибка при использовании конструкции ::ssize_t  
Croessmah
Эксперт CЭксперт С++
13512 / 7670 / 866
Регистрация: 27.09.2012
Сообщений: 18,870
Записей в блоге: 3
Завершенные тесты: 1
22.11.2016, 08:31 #14
Где указаны сами библиотеки?
Не вижу этого на скринах.
0
Bingo_O
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 8
22.11.2016, 11:31  [ТС] #15
это?
0
Миниатюры
Синтаксическая ошибка при использовании конструкции ::ssize_t  
22.11.2016, 11:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2016, 11:31
Привет! Вот еще темы с ответами:

Ошибка при использовании gets() - C++
Не могу понять, почему при второй итерации цикла программа выдает ошибку и закрывается при запросе фамилии. #include &quot;stdafx.h&quot; ...

Ошибка при использовании % - C++
(условие задачи, код и ошибки при коомпиляции на скрине) Здравствуйте, задача простая, как и ее решение, на фортране бы уже пять раз...

Ошибка при использовании strcpy - C++
Здравствуйте, возникла такая проблема Объявляю массив char * char *names = {&quot;asdfg&quot;, &quot;hjklqw&quot;, &quot;wertyui&quot;, &quot;bnmasdfg&quot;,...

Ошибка при использовании write() - C++
Ребят есть код, запись информации в файл. #include &lt;stdio.h&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include &lt;locale.h&gt; ...


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

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

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