Fatal error windows h нет такого файла или каталога

Обновлено: 03.07.2024

Это означает, что у вас нет заголовков gtk для сборки вещей с использованием GTK +. Действительно странно, что ошибка не появилась на шаге ./configure. Чтобы решить эту проблему, просто сделайте:

Это должно сделать это.

проблема в том, когда я пытаюсь использовать команду make Можете ли вы добавить соответствующий код, чтобы узнать, возможно ли воспроизвести? мои компиляции отлично, когда я компилирую его с помощью этой команды gcc main.c -o привет gtk-config --cflags --libs gtk+-2.0

Это также необходимо, чтобы вы могли делать классные вещи, такие как:

Это позволяет использовать, pkg-config чтобы сэкономить много времени

По крайней мере, в моем случае мне не нужно было выполнять sudo apt-get install build-essential gnome-devel , и вторая команда, казалось, сначала сработала, но также привела к появлению проблем с «Нет такого файла или каталога». Решение было больше похоже на: g++ `pkg-config --cflags gtk+-3.0` main.cpp -o base `pkg-config --libs gtk+-3.0`

Gtk3 эквивалентный пакет Debian / Ubuntu libgtk-3-dev

Точно работает на Debian Buster. После установки этой библиотеки ниже команда может скомпилировать простой исходный код в исполняемый файл ./helloworld. gcc `pkg-config --cflags gtk+-3.0` -o helloworld helloworld.c `pkg-config --libs gtk+-3.0`

Поскольку вы используете autotools для генерации ваших Makefile-ов, вам нужно указать automake, как найти заголовки и библиотечные зависимости вашего проекта и включить их в окончательные Make-файлы. Это не моя область знаний, но я постараюсь указать вам правильное направление. Большая часть следующего основана на учебном пособии Использование библиотек C / C ++ с Automake и Autoconf.

Сначала необходимо изменить файл configure.ac верхнего уровня, чтобы добавить зависимость Gtk-2.0. Вы можете использовать PKG_CHECK_MODULES макрос для запуска, pkg-config чтобы найти соответствующие директивы include и library - это хорошая практика, чтобы pkg-config сначала проверить, что существует, поэтому мы также должны добавить PKG_PROG_PKG_CONFIG тест. Части, выделенные полужирным шрифтом, указывают на то, что было добавлено относительно файлов в исходном учебнике amhello, с которого вы начали.

Затем src/Makefile.am вы можете получить CFLAGS и LIBS, используя GTK идентификатор, который вы использовали в PKG_CHECK_MODULES макросе выше

При повторном запуске make он должен сгенерировать ваш файл src / Makefile с соответствующими -I путями включения, путями -L библиотек и библиотеками.

это то же самое при компиляции C-программ с gcc .

обратите внимание: этот вопрос задавался много раз раньше, но каждый раз он был специфичен для ситуации Аскеров. Цель этого вопроса -есть вопрос, что другие могут быть закрыты как дубликаты, раз и навсегда; a часто задаваемые вопросы.

свой компилятор просто попытался скомпилировать файл с именем foo.cc . При попадании номер строки line компилятор находит:

компилятор затем пытается найти этот файл. Для этого он использует набор каталогов для просмотра, но в этом наборе нет файла bar . Для объяснения разницы между версиями оператора include посмотрите здесь.

как сообщить компилятору, где найти его

g++ имеет параметр -I . Он позволяет добавлять пути поиска include в командную строку. Представьте, что ваш файл bar в папке с именем frobnicate , относительно foo.cc (предположим, вы компилируете из каталога, где foo.cc местонахождение):

вы можете добавить больше include-путей; каждый вы даете относительно текущего каталога. Компилятор Microsoft имеет коррелирующий параметр /I это работает таким же образом, или в Visual Studio, папки могут быть установлены на страницах свойств проекта, в разделе свойства конфигурации - >C / C++ - >общие - >дополнительные каталоги Include.

теперь представьте, что у вас есть несколько версий bar в разных папках, дано:

как вы видите, когда компилятор начал искать через A/ , B/ и C/ , он остановился при первом или крайнем левом ударе.

это верно для обеих форм, include <> и incude "" .

представьте, что у вас есть следующие файлы в папке проекта:

это все немного упрощенно, но должно дать вам основную идею.

подробнее о <> / "" -приоритеты и -I

по словам gcc-документация основная задача include <> is, на "нормальной системе Unix", следующим образом:

для программ на C++ он также будет сначала выглядеть в /usr/include/c++/version. В приведенном выше, target является каноническим именем системы GCC был настроен для компиляции кода; [. ].

в документации также говорится:

в этот список можно добавить параметр командной строки-Idir. Все каталоги, названные-I, ищутся в порядке слева направо,перед каталогами по умолчанию. Единственное исключение - когда dir уже выполняется поиск по умолчанию. В этом случае параметр игнорируется, а порядок поиска системных каталогов остается неизменным.

и -I. приоритет папке . над системой включает и мы получаем ошибку компилятора.

я так понимаю все инклюды вида <afx**.h> дают ту же ошибку
как мне добавить их в проект?

Originally posted by Dijkstra
помогите начинаюшему,вопрос такого плана, я открыл Projеct
пытаюсь создать Build Solusion получаю ошибку

fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory

я так понимаю все инклюды вида <afx**.h> дают ту же ошибку
как мне добавить их в проект?

А у тебя все необходимые .lib'ы подключены в
настройках проэкта ?

А у тебя все необходимые .lib'ы подключены в
настройках проэкта ?

*.lib тут вообще не причем.
Запускаеш коммандер жмеш Alt+F7 и ищеш afxwin.h, может у тебя по какой причине его просто нет

*.lib тут вообще не причем.
Запускаеш коммандер жмеш Alt+F7 и ищеш afxwin.h, может у тебя по какой причине его просто нет


ок с этим я разобрался . я не включал изночально
библиотеки в проект .
Сейчас кое-что другое . вроде и в ините искал
мало чего понятного нашел . ошибка такого типа

fatal error C1083: Cannot open include file: 'windows.h': No such file or directory


ок с этим я разобрался . я не включал изночально
библиотеки в проект .
Сейчас кое-что другое . вроде и в ините искал
мало чего понятного нашел . ошибка такого типа

fatal error C1083: Cannot open include file: 'windows.h': No such file or directory

Удивительно.
Вот попробуй може что из этого:

Fatal Error C1083
Cannot open filetype file: 'file': message

An error occurred opening the specified file.

This error can occur if the file, subdirectory, or disk on which it resides is read-only. In this case, make the file writable or move the file to a writable disk. See your operating system documentation for information on removing the read-only attribute from a file.


This error may be caused by not having enough file handles. Close some open applications and recompile.


Trying to open a file or directory for which you do not have permission can cause this error. Move the file to a directory where you do have access privileges, or ask your network administrator to grant you access to the file.


If an include file could not be opened, check that the INCLUDE environment variable is set correctly and that the name of the file is spelled correctly.

Удивительно.
Вот попробуй може что из этого:

Fatal Error C1083
Cannot open filetype file: 'file': message

An error occurred opening the specified file.

This error can occur if the file, subdirectory, or disk on which it resides is read-only. In this case, make the file writable or move the file to a writable disk. See your operating system documentation for information on removing the read-only attribute from a file.


This error may be caused by not having enough file handles. Close some open applications and recompile.


Trying to open a file or directory for which you do not have permission can cause this error. Move the file to a directory where you do have access privileges, or ask your network administrator to grant you access to the file.


If an include file could not be opened, check that the INCLUDE environment variable is set correctly and that the name of the file is spelled correctly.

На самом деле я под windows не имею опыта програмиравания
тоько под UNIX . так решил дополнить свои знания

1. Насчет "file permission" . я сделал поиск window.h библиотеки
оказывается ее нет в системе . может ли быть такое?
2. Допустим я ее нашел в ините скинул себе . где я беру ее имплементацю?

Я пытаюсь установить mysql-python в virtualenv с помощью pip на windows. Сначала я получал ту же ошибку , о которой сообщалось здесь , но ответ там работал для меня тоже. Теперь я получаю следующую ошибку:

Если я получу символическую ссылку (Win7) на мой обычный (не виртуальный) сайт-пакеты python / MySQLdb dir, я получу

Я скорее в растерянности Есть указатели?

Обновление для mysql 5.5 и config-win.h не видимая проблема

В 5.5 config-win. фактически переместился в отдельную папку Connector в Windows. то есть что-то вроде:

C: \ Program Files \ MySQL \ Connector C 6.0.2 \ include

Чтобы преодолеть эту проблему, нужно не только загрузить «биты разработки» (которые на самом деле соединяют соединитель ), но также изменить сценарии установки mysqldb для добавления папки include. Я сделал быстрое грязное исправление как это.

В setup_windows.py найдите строку

Ужасно, но работает, пока авторы mysqldb не изменят свое поведение.

Почти забыл упомянуть. Таким же образом нужно добавить аналогичную дополнительную запись для библиотек:

Т. е. ваш setup_windows.py выглядит примерно так:

Я использовал последнюю версию Connector C 6.1.6, так как это было предложено установщиком MySQL.

Это, однако, не поддерживается последним пакетом MySQL-python (1.2.5). При попытке установить его я увидел, что он явно искал C Connector 6.0.2.

Самое простое рабочее решение:

Загрузите MySQL Connector C 6.0.2 по ссылке ниже и установите.

После установки MySQL, Connector C 6.0.2, скопируйте папку «MySQL, Connector C 6.0.2» из «C: \ Program Files \ MySQL» в «C: \ Program Files (x86) \ MySQL».

Это точно сработает.

Если вы делаете это в виртуальной среде, будь то с помощью Visual Studio или иным образом, попробуйте >

Я следовал ответу от Bugagotti, и он не работает в моих окнах (64-битная версия Win7, py27 и установлен MySQL-коннектор 6.1) для mysql-python-1.2.5, поэтому я сделал некоторые даже грязные изменения в mysql-python- 1.2.5 :

И с этими изменениями проблема config_win.h исчезнет, но проблема с ссылками сохраняется:

Для этого я изменил setup_windows.py:

Тогда это сработало наконец.

У меня тоже была головная боль с MySQLdb.

Почему бы не использовать официальный MysQL Python Connector?

Я следовал методу Mingcai SHEN.

Но в моем случае я изменил разъем на

И library_dirs изменяется на

Потому что у меня нет vs9 каталога. Это работает, но я не знаю почему .

У меня установлен vs2012, а в каталоге lib только соединителя vs10 и vs11 , в котором vs11 не работает. Установленный мною VCForPyhton27.mis поддерживает vs9 .

Во всяком случае, это работает. И если вы хотите рискнуть, вы можете попробовать.

Шаги для Windows 10:

Все, что мне нужно было сделать, - это перейти к oracle, скачать MySQL Connector C 6.0.2 ( новее не работает! ) и выполнить обычную установку.

Обязательно включите все дополнительные дополнения (Extra Binaries) через пользовательскую установку, без них это не сработало бы для win64.msi

Как только это было сделано, я пошел в pycharms и выбрал пакет MySQL-python> = 1.2.4 для установки, и он отлично работал. Не нужно обновлять конфигурацию или что-то подобное. Это была самая простая версия для меня.

Надеюсь, это поможет

Если вы видите это при попытке pip install mysql-python , самый простой способ - скопировать

> в C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2

Я попытался создать символическую ссылку, но Windows все время выдает мне C:\WINDOWS\system32>mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include" The system cannot find the path specified.

В моем случае моим исправлением было копирование папки, созданной из mysql-connector-c-6.0.2-win32.msi (ссылка на которую содержится в буфере имени пользователя в предыдущем посте), которая находится по адресу c: \ Program Files \ MySQL \ MySQL Connector C 6.0.2 и создание нового пути с помощью Program Files (x86) и вставка туда содержимого, поскольку установка не проверяется должным образом между 32-разрядными и 64-разрядными компьютерами.

Итак, новый путь - C: \ Program Files (x86) \ MySQL \ MySQL, Connector C 6.0.2. Это путь, который ищет установщик, поэтому я вставил туда файлы, чтобы помочь установщику найти файлы, что вызывало ошибку об отсутствии config-win.h

Для меня следующий подход решил проблему (Python 3.5.2; mysqlclient 1.3.9):

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

Я скопировал файл 'C: \ Python26 \ Lib \ distutils \ msvc9compiler.py` в папку virtualenv, сделал правку, предложенную в приведенной выше ссылке, и все работает нормально.

Принятое решение больше не работает для более новых версий mysql-python. Программа установки больше не предоставляет файл site.cfg для редактирования.

Если вы устанавливаете mysql-python, он будет искать C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include . Если у вас установлена 64-битная версия MySQL, вы можете просто вызвать:

  1. mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
  2. Run pip install mysql-python
  3. Удалить символическую ссылку, созданную на шаге 1

Решение, которое сработало для меня на Windows : установите как 32 -битную, так и 64 -битную версии MySQL, Connector / C 6.0.2. Откройте Command Prompt и запустите:

Если pip не может установить «MySQLdb», обходной путь - сначала загрузить и установить его на свой компьютер по этой ссылке

Затем скопируйте все файлы и каталоги MySQL * и _mysql * из системного Python в каталог Virtualenv:

c:\Python27\Lib\site-packages (или аналогичный путь к вашей системе Python) для c:\my_virtenv\Lib\site-packages (путь к твоей виртуальности)

Читайте также: