Проект построен из Vagrantfile, и я переключаю его базовую коробку. Теперь бродячий UP не работает на LD на.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проект построен из Vagrantfile, и я переключаю его базовую коробку. Теперь бродячий UP не работает на LD на.

Сообщение Anonymous »

Я готов построить из проекта источников GDAL. Он удобно предлагает блажную коробку со всеми необходимыми для этого (и у него много).
(я не пометил этот вопрос с тегом GDAL , потому что я думаю, что проблема, которую я опишу, не специфична для GDAL, но более связанным с: C ++, либо My FAGRANT INSE) PRUTIO />
  • Оно основано на ubuntu/jammy64 = ubuntu 22.04.5 lts
  • Он устанавливает следующий список упаковки:

Код: Выделить всё

build-essential, ca-certificates, git, make, ninja-build, cmake, ccache, gdb, g++, mold, bison, flex,
wget, curl, unzip, libtool, autoconf, automake, zlib1g-dev, libsqlite3-dev, pkg-config, sqlite3,
bash-completion, swig, ant, openjdk-11-jdk, mono-mcs, mono-runtime, libmono-system-drawing4.0-cil,
python3-dev, python3-numpy, python3-setuptools, python3-pip, postgis, postgresql, postgresql-postgis,
gpsbabel, doxygen, libproj-dev, proj-data, libarchive-dev, libcurl4-gnutls-dev, libtiff5-dev,
libopenjp2-7-dev, libcairo2-dev, libpng-dev, libjpeg-dev, libgif-dev, liblzma-dev, libgeos-dev, libxml2-dev,
libexpat-dev, libxerces-c-dev, libnetcdf-dev, libpoppler-dev, libpoppler-private-dev, libspatialite-dev,
librasterlite2-dev, libhdf4-alt-dev, libhdf5-serial-dev, libfreexl-dev, unixodbc-dev, mdbtools-dev,
libwebp-dev, liblcms2-2, libpcre3-dev, libcrypto++-dev, libfyba-dev, libkml-dev, libmysqlclient-dev,
libogdi-dev, libcfitsio-dev, libzstd-dev, libpq-dev, libssl-dev, libboost-dev, libarmadillo-dev,
libopenexr-dev, libheif-dev, libdeflate-dev, libblosc-dev, liblz4-dev, libbz2-dev, libbrotli-dev,
libqhull-dev, libjson-c-dev, libtiff5-dev
< /code>

[*] Это заканчивается, вызывая этот сценарий компиляции GDAL.SH: < /li>
< /ol>
ARCH_FLAGS=""
AVX2_AVAIL=1
grep avx2 /proc/cpuinfo >/dev/null || AVX2_AVAIL=0
if [[ "${AVX2_AVAIL}" == "1" ]]; then
ARCH_FLAGS="-mavx2"
echo "AVX2 available on CPU"
else
echo "AVX2 not available on CPU."
grep flags /proc/cpuinfo | head -n 1
fi

export CCACHE_DIR=/vagrant/ccache_vagrant

cd /vagrant
mkdir -p build_vagrant
cd build_vagrant
export CFLAGS="$ARCH_FLAGS -Werror"
export CXXFLAGS="$ARCH_FLAGS -Werror"
cmake .. \
-GNinja \
-DCMAKE_INSTALL_PREFIX=/opt/gdal-dev \
-DUSE_CCACHE=ON \
-DUSE_ALTERNATE_LINKER:STRING=mold \
-DCMAKE_BUILD_TYPE=Debug
ninja -j6
sudo ninja install
мой контекст:
Я сам на Debian 12. Когда я делаю бродягу вверх < /code>, он создается, но не всегда с первой попытки и вызывает у меня мало проблем: < /p>
  • Некоторые тесты, которые он несет, кажется висящим. Компиляция часто останавливается во время процесса, и новая попытка (с нуля) достигнет другой точки. По этому вопросу мне не нужна помощь: я взял проект из Master , нормально, что он может провести такие тесты. В конце концов он успевает.
  • У него есть компилятор Java 11 , который я готов заменить на 17 версию. Получившаяся среда работает, Virtualbox VM показывает глюк (квадратный серый курсор после курсора мыши на экране), который предупреждает меня о чем -то нестабильном. Мне не нужна помощь по этому вопросу.
Я решил обменять Vagrantfile Base By By Generic/Debian12 :
, где я буду особенно обменять код. Один.

Код: Выделить всё

- config.vm.box_url = "https://people.canonical.com/~jchittum/vagrant-testing/ubuntu-jammy-vagrant-TESTING-20220419.box"
- config.vm.box = "ubuntu/jammy64"
+ config.vm.box = "generic/debian12"
+ config.vm.box_version = "4.3.12"

+ config.vm.provision "shell", inline:  libgdal.so.37
libgdal.so.37 -> libgdal.so.37.3.11.0
libgdal.so.37.3.11.0
что он осуждает несколько секунд спустя, запустив ld с форматом файла, не расположенным Сообщение:

Код: Выделить всё

default: x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -mavx2 -Werror -fPIC -I/vagrant/build_vagrant/port -I/vagrant/port -I/vagrant/build_vagrant/gcore -I/vagrant/gcore -I/vagrant/alg -I/vagrant/ogr/ -I/vagrant/ogr/ogrsf_frmts -I/vagrant/gnm -I/vagrant/apps -I/usr/include/python3.11 -I/usr/lib/python3/dist-packages/numpy/core/include -c extensions/gnm_wrap.cpp -o build/temp.linux-x86_64-cpython-311/extensions/gnm_wrap.o -DSWIG_PYTHON_SILENT_MEMLEAK
default: x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -mavx2 -Werror -fPIC -I/vagrant/build_vagrant/port -I/vagrant/port -I/vagrant/build_vagrant/gcore -I/vagrant/gcore -I/vagrant/alg -I/vagrant/ogr/ -I/vagrant/ogr/ogrsf_frmts -I/vagrant/gnm -I/vagrant/apps -I/usr/include/python3.11 -I/usr/lib/python3/dist-packages/numpy/core/include -c extensions/gdal_array_wrap.cpp -o build/temp.linux-x86_64-cpython-311/extensions/gdal_array_wrap.o -DSWIG_PYTHON_SILENT_MEMLEAK
default: creating build/lib.linux-x86_64-cpython-311
default: creating build/lib.linux-x86_64-cpython-311/osgeo

default: x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 -mavx2 -Werror build/temp.linux-x86_64-cpython-311/extensions/gdalconst_wrap.o -L/vagrant/build_vagrant -L/usr/lib/x86_64-linux-gnu -lgdal -o build/lib.linux-x86_64-cpython-311/osgeo/_gdalconst.cpython-311-x86_64-linux-gnu.so
default: /vagrant/build_vagrant/libgdal.so: file not recognized: file format not recognized
default: collect2: error: ld returned 1 exit status
Как я еще раз восстанавливаю вещи:
Я ввожу свою виртуальную машину с помощью Vagrant ssh

[*] удаляет build_vagrant , ccache_vagrant . Воссоздает build_vagrant пусто.
[*]

Код: Выделить всё

cd build_vagrant
затем Cmake .. и cmake -build. -J24 , согласно странице сборки GDAL.

Код: Выделить всё

Buildfile: /vagrant/swig/java/build.xml
[100%] Built target csharp_samples

init:
[echo] version = 3.11.0

compile:
[mkdir] Created dir: /vagrant/build_vagrant/swig/java/build/classes
[javac] Compiling 94 source files to /vagrant/build_vagrant/swig/java/build/classes
[javac] warning: [options] bootstrap class path not set in conjunction with -source 8
x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-x86_64-cpython-311/extensions/ogr_wrap.o -L/vagrant/build_vagrant -L/usr/lib/x86_64-linux-gnu -lgdal -o build/lib.linux-x86_64-cpython-311/osgeo/_ogr.cpython-311-x86_64-linux-gnu.so
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 warning
[echo] compilation complete

archive:
[jar] Building jar: /vagrant/build_vagrant/swig/java/gdal.jar

compile_tests:
[mkdir] Created dir: /vagrant/build_vagrant/swig/java/build/apps
[javac] Compiling 24 source files to /vagrant/build_vagrant/swig/java/build/apps
[javac] warning: [options] bootstrap class path not set in conjunction with -source 8
[100%] Linking CXX executable gdal_unit_test
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 warning
[echo] compilation of tests complete

maven:
[mkdir] Created dir: /vagrant/build_vagrant/swig/java/build/maven
[copy] Copying 1 file to /vagrant/build_vagrant/swig/java/build/maven
[copy] Copying 1 file to /vagrant/build_vagrant/swig/java/build/maven
[jar] Building jar: /vagrant/build_vagrant/swig/java/build/maven/gdal-3.11.0-javadoc.jar
[jar] Building jar: /vagrant/build_vagrant/swig/java/build/maven/gdal-3.11.0-sources.jar

BUILD SUCCESSFUL
Total time: 3 seconds
[100%] Built target java_binding
[100%] Built target gdal_unit_test
x86_64-linux-gnu-g++ -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-x86_64-cpython-311/extensions/gdal_wrap.o -L/vagrant/build_vagrant -L/usr/lib/x86_64-linux-gnu -lgdal -o build/lib.linux-x86_64-cpython-311/osgeo/_gdal.cpython-311-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-cpython-311/osgeo/_gdal.cpython-311-x86_64-linux-gnu.so -> osgeo
copying build/lib.linux-x86_64-cpython-311/osgeo/_gdalconst.cpython-311-x86_64-linux-gnu.so -> osgeo
copying build/lib.linux-x86_64-cpython-311/osgeo/_osr.cpython-311-x86_64-linux-gnu.so -> osgeo
copying build/lib.linux-x86_64-cpython-311/osgeo/_ogr.cpython-311-x86_64-linux-gnu.so -> osgeo
copying build/lib.linux-x86_64-cpython-311/osgeo/_gnm.cpython-311-x86_64-linux-gnu.so -> osgeo
copying build/lib.linux-x86_64-cpython-311/osgeo/_gdal_array.cpython-311-x86_64-linux-gnu.so -> osgeo
[100%] Built target python_binding
< /code>

  cmake -build. -J24 -Target Install 
успешно создаст и использует файл .so , который был найден ранее дефектным, но я должен запустить эту команду sudo , если я хочу заменить существующие инсталляции в виртуальной машине. Это нормально.

[*] дальнейший ctest покажут тесты с успехом 93% и pytest с некоторыми 225 тестами, снятыми на 22000, что не плохо, учитывая изменения. Является ли:
Что может вызвать проблему LD во время Vagrant up выполнено, изначально, от хоста? Хост
Я перезагружаю шаги сборки от внутренней части виртуальной машины.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... now-a-vagr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»