17.01.2018, 04:15 [+3 UTC]
в нашей команде: 2 474 чел. | участники онлайн: 0 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.42 (30.12.2017)

Общие новости:
02.01.2018, 09:46

Форум:
12.01.2018, 10:25

Последний вопрос:
17.01.2018, 01:00

Последний ответ:
16.01.2018, 13:00

Последняя рассылка:
16.01.2018, 22:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
02.06.2010, 12:18 »
Вознисеннский Сергей Андреевич
Спасибо большое.выручили меня! [вопрос № 178812, ответ № 261820]
20.09.2009, 17:41 »
Егоров Ярослав Владимирович
Огромное спасибо! Насколько я могу судить - решение абсолютно правильное. [вопрос № 172365, ответ № 254415]
15.10.2009, 22:33 »
Рыленков Геннадий Петрович
Я довольно длительное время читаю Ваши рассылки. Удивляет и поражает эрудированность эксперта Гуревич Александр Львович. Ответы, которые дает он, порой значительно шире, чем сам вопрос. Очень много полезного в такой информации. Много узнал, проверил на практике и очень доволен. Геннадий Петрович Рыленков flylaw.

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 604
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 353
CradleA
Статус: Профессионал
Рейтинг: 251

Перейти к консультации №:
 

Консультация онлайн # 191273
Раздел: • С / С++
Автор вопроса: pesadelo (Посетитель)
Отправлена: 09.08.2017, 17:54
Поступило ответов: 1

Здравствуйте! Прошу помощи в следующем вопросе:

_mingw.h для Windows Visual Studio C++

Я пытаюсь перенести С++ код с Unix на Windows.
Но при выполнении debugging в Visual Studio C++ получаю сообщеения

\unistd.h(28): warning C4068: unknown pragma
\unistd.h(29): fatal error C1083: Cannot open include file:'_mingw.h_mingw.h': No such file or directory

Я не смог найти в Интернете версии _mingw.h совместимой с Visual Studio C++
При использовании имеющихся получаю сообщения

\_mingw.h(54): fatal error C1189: #error: ERROR: You must use a GNU Compiler

Каким образом возможно решить эту проблему?

Искренне Ваш, Анатолий (pesadelo)

Приложение:

Состояние: Консультация закрыта

Ответ # 275198 от solowey (8-й класс)

Здравствуйте, pesadelo!
Предлагаю использовать unistd.h для Windows. В проекте произвести настройку, т.к. в unistd.h используются базовые типы, такие как int8_t, которые есть в visual studio. Из комментария в файле unistd.h следует, что базовые типы были взяты из файла <sys/types.h>. При повторном объявлении их можно отключить через #ifndef или просто закомментировать.
По ошибкам связанным с линковкой советую почитать MSDN.


Консультировал: solowey (8-й класс)
Дата отправки: 16.08.2017, 10:41

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 191273
pesadelo
Посетитель

ID: 401264

# 1

= общий = | 10.08.2017, 13:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:


Я покопался и обнаружил, что использовал версию unistd.h для Unix. В ней имеется вызов _mingw.h.
В версии unistd.h для Windows вызова _mingw.h нет. Но при этом возникает другая ошибка.

\unistd.h(50): error C2371: 'int8_t': redefinition; different basic types
c:\program files (x86)\microsoft visual studio 14.0\vc\include\stdint.h(17): note: see declaration of 'int8_t'

unistd.h для Windows прилагается

-----
 Прикрепленный файл:  скачать (TXT) » [1.9 кб]

solowey
8-й класс

ID: 400484

# 2

= общий = | 10.08.2017, 14:03 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Добрый день.
В ошибке говорится, что не может создать базовый тип 'int8_t'. Скорее всего, он уже описан в файле c:\program files (x86)\microsoft visual studio 14.0\vc\include\stdint.h. Проверьте это. Если это так, просто закомментируйте часть кода относящегося к объявлению базовых типов в приложенном файле...

pesadelo
Посетитель

ID: 401264

# 3

= общий = | 10.08.2017, 18:01 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

В этом случае появляются сообщения подобного содержания:

1>MyFIle.obj : error LNK2001: unresolved external symbol "public: virtual class G4Run * __thiscall G4UserRunAction::GenerateRun(void)" (?GenerateRun@G4UserRunAction@@UAEPAVG4Run@@XZ)

Может ли это быть связано с несоответствием типа?

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 4

= общий = | 10.08.2017, 18:27 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
pesadelo:

А Вы не хотите вместо VSC++ применить GCC (mingw или cygwin). GCC более соответствует заголовочным файлам для unix, что наверняка поспособствует переводу.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

pesadelo
Посетитель

ID: 401264

# 5

= общий = | 10.08.2017, 18:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Вадим Исаев ака sir Henry:

У меня уже была эта идея.
Вы считаете, что с VSC++ не получится?

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 6

= общий = | 11.08.2017, 06:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
pesadelo:

© Цитата: pesadelo
Вы считаете, что с VSC++ не получится?

Не могу Вам сказать точно, т.к. я с ним не работаю. Просто GCC делается один и тот же (ну почти smile ) под все поддерживаемые платформы (конечно мы не будем брать ОС-специфические функции), поэтому с ним потребуется меньше нервотрёпки при переводе программы с одной ОС на другую.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

solowey
8-й класс

ID: 400484

# 7

= общий = | 11.08.2017, 09:36 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: pesadelo

solowey:
В этом случае появляются сообщения подобного содержания:

1>MyFIle.obj : error LNK2001: unresolved external symbol "public: virtual class G4Run * __thiscall G4UserRunAction::GenerateRun(void)" (?GenerateRun@G4UserRunAction@@UAEPAVG4Run@@XZ)

Может ли это быть связано с несоответствием типа?

У меня случалось подобное... Это было не связано с библиотеками или типами. Скорее всего вы не использовали extern при определении. Советую почитать тут - MSDN.

• Отредактировал: solowey (8-й класс)
• Дата редактирования: 11.08.2017, 09:37

solowey
8-й класс

ID: 400484

# 8

= общий = | 11.08.2017, 09:49 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Хотя, в предыдущем комментарии есть неточность. Это не связано с базовыми типами (типа int, short и т.п.). Class - это создаваемый тип пользователем. В этом случаи, тут имеет место ошибка связанная с типом.
У вас заголовочный файл, скорее всего, включен в несколько других файлов и при компиляции он добавляется в них. Линковщик видит один и тот же class в разных obj-файлах и не знает, что делать. Он не может собрать их в один, т.к. не знает какой использовать. По этому и возникают ошибки...
Настроив проект или использовав extern вы говорите линковщику использовать class только один раз, при первом упоминании (если не ошибаюсь). Конфликт ликвидируется...
Ну что-то в этом духе... smile

• Отредактировал: solowey (8-й класс)
• Дата редактирования: 14.08.2017, 13:03

Андрей Кузнецов aka Dr_Andrew
Старший модератор

ID: 17042

# 9

= общий = | 14.08.2017, 12:16 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

Оформите ответ?

=====
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014

solowey
8-й класс

ID: 400484

# 10

= общий = | 14.08.2017, 13:06 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Андрей Кузнецов aka Dr_Andrew:

Я не понимаю, помогли ли мои ответы, т.к. автор вопроса ни чего не написал. Может так ни чего и не получилось...
Если не ответит до завтра, придется отписать общие фразы...

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.17018 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.42 от 30.12.2017