Прежде всего, я хочу отметить, что я люблю C ++, и я один из тех, кто думает, что код на C ++ проще, чем на Java. За исключением одной крошечной вещи: библиотеки.
В Java вы можете просто добавить jar к пути сборки, и все готово.
В C ++ обычно требуется установить несколько путей для файлов заголовков и самой библиотеки. В некоторых случаях вам даже нужно использовать специальные флаги сборки. Я в основном использовал Visual Studio, Code Blocks и вообще не использовал IDE. Все 3 варианта не сильно отличаются при использовании внешних библиотек.
Интересно, почему не было сделано более простой альтернативы для этого? Например, наличие специального файла .zip, в котором есть все, что вам нужно, в одном месте, чтобы IDE могла выполнить всю работу за вас, устанавливая флаги сборки. Есть ли технический барьер для этого?
Это не технический барьер. В Linux ваш «специальный zip-файл» представляет собой пакет library-dev, который вы устанавливаете с помощью менеджера пакетов, и установить флаги include и linker так же просто, как добавить пару строк в ваш файл,
configure.ac
который использует pkg-config для настройки.Pkg-config также доступна для Windows, но культурные барьеры помешали ее широкому распространению. Unix имеет богатую историю обеспечения переносимости за счет распространения исходного кода, поэтому они включают инструменты разработки бесплатно. Windows имеет богатую историю поощрения только бинарного распространения и взимания платы с разработчиков за инструменты. Когда вы зарабатываете на продаже библиотек, третьим сторонам не имеет смысла их предоставлять.
источник