В файле GPR Adacore, как я могу установить компилятор включить пути поиска для C++
У меня есть код на C++, который мне нужно скомпилировать с помощью Adacore GNAT Programming Studio.
Один файл (SomeHeader.h) находится в общем каталоге (../../Common/) относительно моего файла GPR.
Наше соглашение для C++ включает директивы использовать
#include "Common/SomeHeader.h"
Независимо от того, что я делаю, я не могу заставить GprBuild найти "Common/SomeHeader.h". Я следовал приведенным здесь инструкциям в AdaGem 108 с изменениями для C++.
for Include_Switches ("c++") use ("-I ../../");
а также
for Include_Path ("c++") use "../..";
Кажется, все это не работает для меня во время gprbuild, и, к сожалению, я не могу получить команду backend, которую использует gprbuild, даже после увеличения детализации сборки.
Я вижу некоторые временные файлы в сообщениях сборки, но они удаляются, прежде чем я могу получить к ним доступ.
Я использую Adacore GPS 17.1 на Windows 10 i686-pc-mingw32, GNAT Pro 17.1.
Кто-нибудь знает, как включить пути поиска, работающие в Gprbuild Adacore?
2 ответа
Я не пытался использовать gprbuild
для компиляции исходного текста на C++, но я полагаю, что он работает более или менее как в Ada, где вы добавляете соответствующие каталоги в Source_Dirs
атрибут:
project Cookie is
for Languages use ("C++");
for Source_Dirs use (".",
"../..");
[...]
end Cookie;
Если вы хотите использовать относительные пути, и вы не можете использовать -I
помните, что текущий каталог во время компиляции кода на C++ установлен в каталог obj, настроенный для grp.
Так что, если каталог, который вы хотите включить, расположен на C:\Foo\Bar\src\include\
и ваш каталог GRP obj находится на C:\Foo\Bar\env\gpr\obj
тогда ваш относительный путь нужно будет использовать -I..\..\..\src\include