Как я понимаю, системные библиотеки, такие как libc, также должны поставляться, потому что исполняемый файл будет аварийно завершаться при другой версии libc.
blockquote>Это неверно : GLIBC гарантирует обратную совместимость (исполняемый файл, построенный на более старой системе, будет продолжать работать на более новых версиях GLIBC).
Единственный разумный способ добиться того, чего вы хотите - это скомпилировать самую старую версию GLIBC, которую вы хотите поддерживать.
Между тем libc, похоже, связан с ld-linux
blockquote>Правильно:
libc.so.6
иld-linux
являются частью GLIBC, должны происходить из такая же сборка, и любое несоответствие может привести к катастрофическому отказу (SIGSEGV
внутриlibc.so.6
или внутриld-linux
).Мне тоже нужно упаковать ld-linux.
blockquote>Это сложно: абсолютный путь к
ld-linux
жестко запрограммирован вa.out
и не может быть изменен. Сделать перемещаемымa.out
, который может допускать изменения в пути кld-linux
, невозможно (если не считать явного вызова загрузчика, который вы уже пробовали; который не работает хорошо для исполняемых файлов, которые повторно исполняются сами) ).Обновление:
Я мог бы попытаться использовать старую Ubuntu LTS и получить большую часть обратной совместимости, но тогда я не получил бы новые компиляторы C ++ 17, который в основном побеждает весь смысл современной разработки программного обеспечения.
blockquote>Вы можете установить более новый компилятор на более старой системе и получить C ++ 17 с более старой GLIBC.
Одна трудность в том, что вам может потребоваться более новый
libstdc++.so.6
.Хорошая новость заключается в том, что
-Wl,-rpath=$ORIGIN
работает нормально - только GLIBC трудно переместить. Вы также можете связать исполняемый файл сlibstdc++.a
с--static-libstdc++
.Тем не менее, в этом могут быть и последствия для лицензирования (но опять же ваш план уже включал распространение всех библиотек, так что проблема не нова).
Я использовал TortoiseSVN, создал каталог (C: \ Repositories) затем использовал команду меню «Создать здесь репозиторий ...».
Просто создайте локальный репозиторий svn и используйте URL-адреса на основе file: // для их исходного кода. Не обязательно иметь конкретный. запущен, экземпляр сервера для этого.
Проверьте http://www.visualsvn.com/ для сервера и TortoiseSVN для клиента. Проверьте AnkhSVN для интеграции с Visual Studio 2008.
Я хотел бы второй сервер Visual SVN, который является бесплатным и позволит вам запустить его через несколько минут. Однако он подключает SVN через HTTP, а также для локальной установки Subversion, в которой может не быть необходимости.
Если вы предпочитаете запускать просто «ручную» настройку Subversion, ниже приводится пошаговое описание процесса с упором на использование Visual Studio: http://www.west-wind.com/presentations/subversion/
Рик Страл, FTW!
Еще одно замечательное руководство по настройке SVN с Windows принадлежит Джеффу Атвуду из Coding Horror:
Настройка Subversion в Windows
вкратце:
http://www.visualsvn.com/ Это должно помочь с проблемами интеграции
Я рекомендую использовать subversion в качестве локального хоста для файлов с tortoise tortoise для интеграции просмотра или / и ankhsvn для интеграции с vs2008.
Я бы порекомендовал Toirtoise SVN, он довольно прост в установке и использовании.
Вот документация , это обязательно!