Я ссылаюсь на некоторые C-проекты в моем Package.swift.Недавно я добавил проект, который ссылается на другие C-проекты в своем собственном файле Package.swift, и хотя эти C-проекты отличаются от моих ссылочных проектов, они содержат объектные файлы с одинаковыми именами.Опираясь на командную строку, используя swift build
или swift run
, я получаю сообщение об ошибке «дубликат символа» во время компоновки.
например,
duplicate symbol _http_message_needs_eof in:
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/CHTTPParser.build/http_parser.c.o
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/PerfectCHTTPParser.build/http_parser.c.o
duplicate symbol _http_should_keep_alive in:
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/CHTTPParser.build/http_parser.c.o
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/PerfectCHTTPParser.build/http_parser.c.o
duplicate symbol _http_parser_execute in:
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/CHTTPParser.build/http_parser.c.o
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/PerfectCHTTPParser.build/http_parser.c.o
duplicate symbol _http_parser_pause in:
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/CHTTPParser.build/http_parser.c.o
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/PerfectCHTTPParser.build/http_parser.c.o
duplicate symbol _http_errno_name in:
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/CHTTPParser.build/http_parser.c.o
/Users/tyress/private/.build/x86_64-apple-macosx10.10/debug/PerfectCHTTPParser.build/http_parser.c.o
В конце концов сборка завершается с <unknown>:0: error: link command failed with exit code 1 (use -v to see invocation)
(это сообщениеотображается даже при сборке с -v)
Сборка на Xcode 9.3 не выдает такой ошибки и нормально работает при отладке.
Есть ли что-нибудь, что я могу сделать, чтобы предотвратить сбой этой сборки с дубликатами?Мне нужно было бы собрать его из командной строки.