Ну, это не так много информации, чтобы продолжить.Как говорится в ошибке, символ _detectLinux включен как в linuxDetect.o, так и в iTermsOS.o, и когда вы пытаетесь связать их вместе, возникает конфликт, так как компоновщик не знает, какой из двух символов использовать.Это может произойти, если, например, у вас есть глобальная переменная с таким именем в файле .h, которая используется для создания обоих файлов вместо объявления ее в одном месте и объявления ее как «extern» в файле .h.
Что вам нужно сделать, это посмотреть, где символ _detectLinux был первоначально объявлен, а затем проследить через зависимости для linuxDetect.o и iTermOS.o, чтобы понять, почему он публично включен в оба.