20.08.2017, 20:08 [+3 UTC]
в нашей команде: 2 094 чел. | участники онлайн: 4 (рекорд: 21)

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

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
20.08.2017, 16:51

Последний вопрос:
18.08.2017, 23:30

Последний ответ:
17.08.2017, 18:54

Последняя рассылка:
20.08.2017, 18:45

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

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

Наша кнопка:

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

Отзывы о нас:
09.01.2012, 16:39 »
lamed
Большое спасибо, Дмитрий Германович! С уважением. [вопрос № 185126, ответ № 269506]
28.03.2010, 19:24 »
MrSpencer
Спасибо! Всё доходчиво и понятно. [вопрос № 177497, ответ № 260404]
16.04.2013, 12:15 »
Киселёва Алёна aka Verena
Спасибо за ответ! [вопрос № 187280, ответ № 272199]

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

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

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

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

Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 336
mklokov
Статус: 6-й класс
Рейтинг: 87
solowey
Статус: 6-й класс
Рейтинг: 82

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

Консультация онлайн # 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 (6-й класс)

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


Консультировал: solowey (6-й класс)
Дата отправки: 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
6-й класс

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
6-й класс

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 (6-й класс)
• Дата редактирования: 11.08.2017, 09:37

solowey
6-й класс

ID: 400484

# 8

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

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

• Отредактировал: solowey (6-й класс)
• Дата редактирования: 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
6-й класс

ID: 400484

# 10

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

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

 

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

Яндекс Rambler's Top100

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

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

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн