реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Компиляция __DATE__ при изменениях в других файлах
Target
сообщение Mar 5 2013, 06:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 21-05-08
Пользователь №: 37 691



Добрый день,

Мой исходник состоит из нескольких файлов. При компиляции изменений только в одном файле, где не используется __DATE__, дата компиляции остается старой.

Можно ли как-нибудь решить эту проблему без перекомпиляции всех файлов?
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 5 2013, 10:59
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Если собирать программу при помощи make, то это решается элементарно. Системы сборки программ во всяких IDE всегда были лишены гибкости.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Mar 6 2013, 06:01
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



для make и компании уже ответили. Для ИДЕ пишешь скрипт, который меняет дату изменения файла с __DATE__ и вешаешь его в пребилд-действия
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 6 2013, 06:18
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Непомнящий Евгений @ Mar 6 2013, 10:01) *
Для ИДЕ пишешь скрипт, который меняет дату изменения файла с __DATE__ и вешаешь его в пребилд-действия

Кстати, я это первым делом попробовал (touch.exe). Не помогает.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Mar 6 2013, 06:58
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



я когда компилировал из ИДЕ (правда это было давно и на ИАР5,12 вроде) так делал - работало. Однако про touch я не знал и у меня было вот такое
CODE
<?
function _exit($text)
{
echo($text);
sleep(5);
exit();
}

$path = "z:\\_projects\\t103mk1_jhn\\sources\\";

if (!($fl = fopen($path . "compDT.cpp", "r")))
_exit("AAAAAAAAAAA");

$cont = "";

while ($str=fgets($fl,1024))
$cont.=$str;

fclose($fl);

if (!($fl = fopen($path . "compDT.cpp", "w")))
_exit('AAA");

fwrite($fl, $cont);

fclose($fl);
?>

sm.gif


А ваш touch точно дату меняет? И выполняется именно до билда?

ЗЫ сейчас у меня билд через scons, в нем подобные задачи решаются тривиально

Сообщение отредактировал IgorKossak - Mar 6 2013, 07:38
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01379 секунд с 7
ELECTRONIX ©2004-2016