Как обычно, хочется максимальной переносимости, в частности с домашнего компьютера на рабочий, некоторых исходников. Но при этом часть заголовочных файлов и .lib должны содержаться в папке проекта.
Сделал вот такой "финт ушами":
#define __macro_concat(x,y) x##y
#define __compose_label(x,y) __macro_concat(x,y)
#define __solutiondir__ __compose_label( BASE_DIR, src/libs/dxsdk/lib/d3d8.lib )
#pragma comment(lib, __solutiondir__ )
BASE_DIR объявлен в настройках проекта как
BASE_DIR=$(SolutionDir)
Но в итоге фокус не удался, макрос BASE_DIR раскрывается во что-то типа "c:\projects\fun\ssaver" и \, как не трудно догадаться, считается управляющим символом.
Есть правильный рецепт подобных фокусов, или статья, где почитать?
Заранее благодарю.
Здравствуйте, Tujh, Вы писали:
T>Как обычно, хочется максимальной переносимости, в частности с домашнего компьютера на рабочий, некоторых исходников. Но при этом часть заголовочных файлов и .lib должны содержаться в папке проекта.
T>Сделал вот такой "финт ушами":
T>#define __macro_concat(x,y) x##y
T>#define __compose_label(x,y) __macro_concat(x,y)
T>#define __solutiondir__ __compose_label( BASE_DIR, src/libs/dxsdk/lib/d3d8.lib )
T>#pragma comment(lib, __solutiondir__ )
T>BASE_DIR объявлен в настройках проекта как
T>BASE_DIR=$(SolutionDir)
T>Но в итоге фокус не удался, макрос BASE_DIR раскрывается во что-то типа "c:\projects\fun\ssaver" и \, как не трудно догадаться, считается управляющим символом.
T>Есть правильный рецепт подобных фокусов, или статья, где почитать?
В настройках проекта нужно указывать пути к папкам с либами, используя макросы вроде $(SolutionDir).
То есть, к примеру — $(SolutionDir)\lib в "Additional Library Directories" (Linker Options).
А сами либы подключать по относительным и коротким путям — a.lib, b.lib и т.п.
Я другого решения не знаю, это самое переносимое.