Признак: Во время сборки программного обеспечения происходит ошибка сборки; переменные не решают правильно.
Если ваш набор инструментальных средств использует или однопроходного компоновщика с одной передачей, предотвратите круговые зависимости по данным путем добавления StartLibraryGroup
и EndLibraryGroup
директивы компоновщика к файлу определения набора инструментальных средств. Процесс сборки применяет группирующиеся директивы к библиотекам $(MODELREF_LIBS)
модели - ссылки и пользовательские библиотеки
$(LIBS)
.
Например, если компоновщик похож на GNU gcc
, затем директивами является '-Wl,--start-group'
и '-Wl,--end-group'
, как показано здесь:
% ------------------------------ % Linker % ------------------------------ tool = tc.getBuildTool('Linker'); tool.setName( 'GNU Linker'); tool.setCommand( 'gcc'); tool.setPath( ''); tool.setDirective( 'Library', '-l'); tool.setDirective( 'LibrarySearchPath', '-L'); tool.setDirective( 'OutputFlag', '-o'); tool.setDirective( 'Debug', '-g'); tool.addDirective( 'StartLibraryGroup', '-Wl,--start-group'); tool.addDirective( 'EndLibraryGroup', '-Wl,--end-group'); tool.setFileExtension( 'Executable', ''); tool.setFileExtension( 'Shared Library', '.so');