Comments (2)
您好,我不知道您要构建哪个版本,但这是我如何
v3.1.0
在 CentOS 7 上构建的示例:export mapnik_version=3.1.0 mkdir --parents /tmp/mapnik_src cd /tmp/mapnik_src yum --assumeyes install epel-release centos-release-scl yum --assumeyes upgrade yum --assumeyes install \ boost169-devel \ bzip2 \ cairo-devel \ freetype-devel \ devtoolset-9-gcc \ devtoolset-9-gcc-c++ \ gdal-devel \ harfbuzz-devel \ libicu-devel \ libjpeg-devel \ libpng-devel \ libtiff-devel \ libwebp-devel \ libxml2-devel \ make \ patch \ postgresql-devel \ proj-devel \ python3 \ sqlite-devel \ tar \ zlib-devel export DESTDIR="/tmp/mapnik" export GDAL_DATA="$(gdal-config --datadir)" export JOBS="$(nproc)" export PROJ_LIB="/usr/share/proj" export PYTHON="python3" mkdir --parents ${GDAL_DATA} ${PROJ_LIB} if [ ! -f SConstruct ]; then \ curl --silent --location https://github.com/mapnik/mapnik/releases/download/v${mapnik_version}/mapnik-v${mapnik_version}.tar.bz2 \ | tar --extract --bzip2 --strip-components=1 --file=- sed -i 's#BOOST_APPEND = match.groups()\[0\]#BOOST_APPEND = ""#g' SConstruct fi source /opt/rh/devtoolset-9/enable export CUSTOM_DEFINES="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H" export CUSTOM_LDFLAGS="-L/usr/lib64/boost169" bash configure \ CPP_TESTS=False \ CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \ CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \ CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \ CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \ DEMO=False \ DESTDIR="${DESTDIR}" \ FAST=True \ INPUT_PLUGINS=all \ LIBDIR_SCHEMA=lib64 \ OPTIMIZATION=2 \ PREFIX=/usr \ SVG2PNG=True \ XMLPARSER=libxml2 make PYTHON="${PYTHON}"此时,
libmapnik.a
不存在。find . -name libmapnik.a
最初配置
LINKING=static
似乎会导致构建失败,但是,当再次运行最后两个命令时,LINKING=static
它确实构建libmapnik.a
成功。bash configure \ CPP_TESTS=False \ CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \ CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \ CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \ CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \ LINKING=static \ DEMO=False \ DESTDIR="${DESTDIR}" \ FAST=True \ INPUT_PLUGINS=all \ LIBDIR_SCHEMA=lib64 \ OPTIMIZATION=2 \ PREFIX=/usr \ SVG2PNG=True \ XMLPARSER=libxml2 make PYTHON="${PYTHON}"find . -name libmapnik.a ./src/libmapnik.a
Thank you very much for your patient explanation. I am using version 3.0.19. Following the method you provided, I have successfully obtained the libmapnik.a file. Thanks
from mapnik.
Hello, I can't tell which version you're trying to build, but here's an example of how I build v3.1.0
on CentOS 7:
export mapnik_version=3.1.0
mkdir --parents /tmp/mapnik_src
cd /tmp/mapnik_src
yum --assumeyes install epel-release centos-release-scl
yum --assumeyes upgrade
yum --assumeyes install \
boost169-devel \
bzip2 \
cairo-devel \
freetype-devel \
devtoolset-9-gcc \
devtoolset-9-gcc-c++ \
gdal-devel \
harfbuzz-devel \
libicu-devel \
libjpeg-devel \
libpng-devel \
libtiff-devel \
libwebp-devel \
libxml2-devel \
make \
patch \
postgresql-devel \
proj-devel \
python3 \
sqlite-devel \
tar \
zlib-devel
export DESTDIR="/tmp/mapnik"
export GDAL_DATA="$(gdal-config --datadir)"
export JOBS="$(nproc)"
export PROJ_LIB="/usr/share/proj"
export PYTHON="python3"
mkdir --parents ${GDAL_DATA} ${PROJ_LIB}
if [ ! -f SConstruct ]; then \
curl --silent --location https://github.com/mapnik/mapnik/releases/download/v${mapnik_version}/mapnik-v${mapnik_version}.tar.bz2 \
| tar --extract --bzip2 --strip-components=1 --file=-
sed -i 's#BOOST_APPEND = match.groups()\[0\]#BOOST_APPEND = ""#g' SConstruct
fi
source /opt/rh/devtoolset-9/enable
export CUSTOM_DEFINES="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H"
export CUSTOM_LDFLAGS="-L/usr/lib64/boost169"
bash configure \
CPP_TESTS=False \
CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \
CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \
CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \
CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \
DEMO=False \
DESTDIR="${DESTDIR}" \
FAST=True \
INPUT_PLUGINS=all \
LIBDIR_SCHEMA=lib64 \
OPTIMIZATION=2 \
PREFIX=/usr \
SVG2PNG=True \
XMLPARSER=libxml2
make PYTHON="${PYTHON}"
At this point, libmapnik.a
does not exist.
find . -name libmapnik.a
Initially configuring with LINKING=static
seems to cause the build to fail, however, when running the last two commands again with LINKING=static
it does build libmapnik.a
successfully.
bash configure \
CPP_TESTS=False \
CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \
CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \
CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \
CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \
LINKING=static \
DEMO=False \
DESTDIR="${DESTDIR}" \
FAST=True \
INPUT_PLUGINS=all \
LIBDIR_SCHEMA=lib64 \
OPTIMIZATION=2 \
PREFIX=/usr \
SVG2PNG=True \
XMLPARSER=libxml2
make PYTHON="${PYTHON}"
find . -name libmapnik.a
./src/libmapnik.a
from mapnik.
Related Issues (20)
- Is there a Dot Net wrapper anywhere? HOT 12
- Feature request: allow empty Multi* geometries HOT 1
- Misoriented altitude labels on contour lines HOT 4
- make failed in ubuntu 23.04 (with quick and dirty fix) HOT 1
- compile fails under ubuntu noble if you include proj.h HOT 2
- mapnik On Window10
- Support percentage values with a fractional component HOT 1
- 4.0.0-rc1 pollutes /usr/include toplevel directory HOT 1
- Github actions - Linux and MacOS runners are faliing HOT 8
- Cannot read context in shapefile with mapnik HOT 5
- Text not rendered correctly in visual-tests HOT 4
- GCC 14 build errors HOT 4
- Proposal: new logging and formatting HOT 2
- Using of `simplify_prefilter` parameter in PostGis datasource HOT 3
- Windows build is broken on github HOT 3
- FR: allow loading of styles with missing layer data files HOT 1
- bad rendering of specific Arabic text HOT 2
- Fails to build with GCC 14 HOT 4
- The 4.0.1 release archive contains a lot of Apple specific noise HOT 5
- Brew not including mapnik-config in 4.0.0 install HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mapnik.