Похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:
php -v
из командной строки и посмотреть, возвращает ли информация о версии или какие-либо ошибки. LoadModule php5_module "c:/php/php5apache2_2.dll"
в файле. Найдите LoadModule php
и убедитесь, что перед ним нет комментария (;
). AddType application/x-httpd-php .php
. Это говорит Apache, чтобы запустить .php
файлы как PHP. Найдите AddType, а затем убедитесь, что есть запись для PHP, и что она раскоментирована. .php
на нем или любое расширение, указанное в определении MIME в point # 3, иначе он не будет выполняться как PHP.
), это не включен на всех серверах по умолчанию, и их использование не рекомендуется. Вместо этого используйте (или включить короткие теги в вашем php.ini с short_open_tag=On
, если у вас есть код, который их использует).
http://localhost/file.php
, не через доступ к локальному файлу file://localhost/www/file.php
И, наконец, проверьте Руководство по PHP для дальнейших советов по настройке .
Один из способов - не называть выходные файлы windres
расширением .o
. Если вы выберете другое расширение, у вас не будет этой проблемы.
Другой способ заключается в использовании статических шаблонных правил для windres
целей:
RCOBJ := $(patsubst %.rc,%.rc.o,$(wildcard *.rc))
OBJ = menu_one.o $(RCOBJ)
...
$(RCOBJ) : %.rc.o : %.rc
windres $^ -o $@
Поскольку статические шаблонные правила являются сокращением для создания явных правил и не являются неявными правилами, они не участвуют в поисках, поэтому у make не будет круговой зависимости.
ETA
ОК. Я создал ваш пример локально. Используя make -d
, мы можем видеть, что происходит: make нуждается в build menu_one.rc.o
, и он находит наше правило с предварительным условием menu_one.rc
. Затем ему нужно посмотреть, сможет ли он перестроить manu_one.rc
, и найти общее правило шаблона для построения исполняемых файлов:
%: %.o ; ...
Сопоставление этого шаблона с целью menu_one.rc
дает предварительное условие menu_one.rc.o
и у вас есть петля.
Вам нужно уведомить make, что файлы *.rc
являются исходными файлами, и make не должна пытаться их создавать. Вы можете сделать это, объявив терминальное правило . В руководстве по сборке GNU make содержится подробное обсуждение тонкостей работы с правилами для любых совпадений (правилами с целью только из %
, которая соответствует любой цели).
Добавьте это, чтобы сообщить make, что ваши .rc
файлы являются терминальными (то есть они не могут быть собраны из чего-то другого):
%.rc: