Я строю проект C ++ в XCode, который использует две библиотеки. Скажем, например, libX.a и libY.a. В libX.a и libY.a есть некоторые определения функций, для которых я получаю ошибку компоновщика дубликатов символов.
Это нормально, но я получаю только одну ошибку за раз. Как только я исправлю ошибку, я получу следующую двойную ошибку символа, и этот процесс повторится.
У меня есть две проблемы с этим подходом:
У меня нет точного количества повторяющихся ошибок. Я хотел знать все найденные дубликаты символов. Так что я могу распределить исправление между несколькими разработчиками.
Исправление ошибки достаточно быстрое по сравнению со временем, необходимым для сборки библиотек, а затем связывания для создания исполняемого файла.
Возможно ли это? Я имею в виду, возможно ли установить любой флаг так, чтобы компоновщик давал все повторяющиеся символы одновременно.
РЕДАКТИРОВАТЬ: добавление образца кода для уточнения:
Позвольте мне показать пример здесь:
test1.h
void foo()
{
}
void bar()
{
}
test2.h
void foo()
{
}
void bar()
{
}
test1.cpp
#include "test1.h"
void j()
{
foo();
bar();
}
test2.cpp
#include "test2.h"
void k()
{
foo();
bar();
}
Компиляция сейчас:
g++ -c test1.cpp
g++ -c test2.cpp
Ссылка сейчас:
g++ -o final test1.o test2.o
Даже если есть 2 повторяющихся символа foo и bar, я получаю ошибку только для foo, как показано ниже:
ld: duplicate symbol foo() in test2.o and test1.o
collect2: ld returned 1 exit status
Как только я исправлю foo, я получаю ошибку для бара, показанную ниже:
ld: duplicate symbol bar() in test2.o and test1.o
collect2: ld returned 1 exit status
Я бы хотел получить эти две ошибки одновременно. Так что я исправляю их все, а затем связываю одним выстрелом.
Спасибо
С наилучшими пожеланиями,
Марк