Използвайки GCC под Windows, бих искал да мога да посоча в командния ред на gcc (или от ръчно управляван makefile) името на конкретен включен файл, който да бъде включен в компилирания файл. Както виждам, в идеалния случай файлът с изходния код би съдържал ред нещо като...
#include INCLUDEFILENAME
…тогава име на файл, указано в командния ред на gcc, ще бъде заменено с текста INCLUDEFILENAME
.
Изглежда, че мога да се доближа до постигането на това, като дефинирам макрос, наречен INCLUDEFILENAME, в командния ред на gcc, използвайки опцията -D
(напр. -D INCLUDEFILENAME="C:\TestLib\Test1.h"
), но когато текстът на името на файла се замества в оператора #include
, той не е ограден в двойни кавички и без те не се разпознават като файл за включване. Разбира се…
#include "INCLUDEFILENAME"
...не работи, тъй като INCLUDEFILENAME след това се превръща в низов литерал и не се заменя от стойността на макроса. Опитах други начини за уточняване на двойните кавички (\x22
, \"
, "\""
и т.н.), но те изглежда не работят на реда #include
.
Наясно съм с опцията gcc -include
, която изглежда може да принуди файл да бъде включен, без да бъде споменат по никакъв начин в изходния файл, но бих предпочел изходният файл да показва, че включващ файл трябва да бъде включен тук, но това името му е посочено „външно“ към изходния файл (в крайна сметка от make-файла).
Всякакви предложения за това как мога да постигна това ще бъдат оценени.