Ксения (06.01.2019 12:07 - 12:09, просмотров: 189) ответил Хитрый Китаец на Язык то один, но смена регистров, общий вид, подстановка макровыражений, шелловские заморочки и т.д. доставляют :)
У меня совсем простой случай (всего две строки), но всё равно неясно, как это с помощью make сделать: ml64 /c /Cp *.asm
lib /MACHINE:X64 /OUT:asm64.lib *.obj
первая строка затем, чтобы ассемблерные asm-файлы скопилировались в объектные obj-файлы,
а вторая строка, чтобы объектные obj-файлы сложились в библиотеку asm64.lib (все в одну).
Проблема же в том, что asm-файлов очень много (где-то под сотню), тогда как компилятор ассемблера ml64 и библиотекарь lib имена файлов с дикой картой (*) не понимают. А при написании в развернутом виде (в виде списка) возникают еще две проблемы: ограничение на длину строки (когда ее конец игнорируется) и сложность сохранять соответствие между asm- и obj-списками (а то либо библиотекарь ругается, что какой-то obj-файл отсутствует, либо "забывает" его включить в библиотеку).
Пыталась использовать для этой цели командный bat-файл с циклом перечисления по всем *.asm, но наткнулась на то, что не могу его средствами заменить расширение *.asm на *.obj, чтобы преобразовать имена asm-файлов в obj-файлы.
Можно ли этому горю помочь?