

こんにちは。以下の環境でmapserverをmakeしようとした際にエラーが発生し、解決できずに困っています。  
アドバイスをお願いいたします。

■OS  
CentOS Linux release 8.2.2004 (Core)

■PostgreSQL

[code]

    名前         : postgresql12-server
    バージョン   : 12.3
    リリース     : 5PGDG.rhel8
    Arch         : x86_64
    サイズ       : 20 M
    ソース       : postgresql12-12.3-5PGDG.rhel8.src.rpm
    リポジトリー : @System
    repo から    : pgdg12
    
[/code]

■PostGIS

[code]

    名前         : postgis30_12
    バージョン   : 3.0.1
    リリース     : 5.rhel8
    Arch         : x86_64
    サイズ       : 33 M
    ソース       : postgis30_12-3.0.1-5.rhel8.src.rpm
    リポジトリー : @System
    repo から    : pgdg12
    
[/code]

その他、mapserverに必要なライブラリはすべてyumでインストール。

■GDAL

[code]

    yum --enablerepo=epel,PowerTools install gdal gdal-devel
    
[/code]

■PROJ

[code]

    dnf install proj proj-devel
    
[/code]

■libpng

[code]

    dnf install libpng libpng-devel
    
[/code]

■FreeType

[code]

    yum -y install freetype freetype-devel
    
[/code]

■libjpeg

[code]

    yum -y install libjpeg libjpeg-devel
    
[/code]

■zlib

[code]

    yum -y install zlib zlib-devel
    
[/code]

■libcurl

[code]

    yum install libcurl libcurl-devel
    
[/code]

■FRIBIDI

[code]

    yum install fribidi fribidi-devel
    
[/code]

■PROTOBUF

[code]

    yum install protobuf protobuf-devel
    
[/code]

■libtiff

[code]

    yum install libtiff libtiff-devel
    
[/code]

■GEOS

[code]

    yum install --enablerepo=epel,PowerTools geos geos-devel
    
[/code]

■libxml

[code]

    yum install libxml2 libxml2-devel
    
[/code]

■libgif

[code]

    yum install giflib giflib-devel
    
[/code]

■FastCGI

[code]

    yum install fcgi fcgi-devel
    
[/code]

■Cairo

[code]

    yum install cairo cairo-devel
    
[/code]

■XSLT

[code]

    yum install libxslt libxslt-devel
    
[/code]

■mapserverは次の通りcmakeでビルド。

[code]

    tar xzvf mapserver-7.6.0.tar.gz
    cd mapserver-7.6.0/
    mkdir build
    cd build
    
    cmake -DCMAKE_INSTALL_PREFIX=/opt -DCMAKE_PREFIX_PATH="/usr/pgsql-12/bin" -DWITH_PHP=ON -DWITH_CURL=ON -DWITH_CLIENT_WFS=ON -DWITH_CLIENT_WMS=ON -DWITH_KML=ON -DWITH_XMLMAPFILE=ON -DWITH_POSTGIS=ON -DWITH_PROTOBUFC=0 ..
    
[/code]

■cmake結果

[code]

    -- The C compiler identification is GNU 8.3.1
    -- The CXX compiler identification is GNU 8.3.1
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Requiring C++11
    -- Requiring C++11 - done
    -- Requiring C99
    -- Requiring C99 - done
    -- Looking for strrstr
    -- Looking for strrstr - not found
    -- Looking for strcasecmp
    -- Looking for strcasecmp - found
    -- Looking for strcasestr
    -- Looking for strcasestr - found
    -- Looking for strlcat
    -- Looking for strlcat - not found
    -- Looking for strlcpy
    -- Looking for strlcpy - not found
    -- Looking for strlen
    -- Looking for strlen - found
    -- Looking for strncasecmp
    -- Looking for strncasecmp - found
    -- Looking for vsnprintf
    -- Looking for vsnprintf - found
    -- Looking for lrintf
    -- Looking for lrintf - found
    -- Looking for lrint
    -- Looking for lrint - found
    -- Looking for dlfcn.h
    -- Looking for dlfcn.h - found
    -- Performing Test HAVE_SYNC_FETCH_AND_ADD
    -- Performing Test HAVE_SYNC_FETCH_AND_ADD - Success
    -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.11")
    -- Found PNG: /usr/lib64/libpng.so (found version "1.6.34")
    -- Found JPEG: /usr/lib64/libjpeg.so
    -- Found Freetype: /usr/lib64/libfreetype.so
    -- Found PROJ: /usr/lib64/libproj.so
    -- Found Proj 6.3
    -- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2")
    -- Found FRIBIDI: /usr/lib64/libfribidi.so
    -- Checking for module 'harfbuzz>=0.9.18'
    --   Found harfbuzz, version 1.7.5
    -- Found HarfBuzz: /usr/include/harfbuzz
    -- Looking for iconv
    -- Looking for iconv - found
    -- Found iconv library:
    -- Checking for module 'cairo'
    --   Found cairo, version 1.15.12
    -- Found CAIRO: /usr/lib64/libcairo.so
    -- Found FCGI: /usr/lib64/libfcgi.so
    -- Found GEOS: /usr/lib64/libgeos_c.so
    -- Found POSTGRESQL: /usr/lib64/libpq.so
    -- Looking for PQserverVersion in pq
    -- Looking for PQserverVersion in pq - found
    -- Found GDAL: /usr/lib64/libgdal.so
    -- Found CURL: /usr/lib64/libcurl.so (found version "7.61.1")
    -- Found LibXml2: /usr/lib64/libxml2.so (found version "2.9.7")
    -- Found LibXslt: /usr/lib64/libxslt.so (found version "1.1.32")
    -- Found GIF: /usr/lib64/libgif.so (found version "5.1.4")
    -- /usr/include/php/main
    -- Found PHP-Version 7.4.7 (using /usr/bin/php-config)
    -- * Summary of configured options for this build
    --  * Mandatory components
    --   * GDAL: /usr/lib64/libgdal.so
    --   * PROJ: /usr/lib64/libproj.so
    --   * png: /usr/lib64/libpng.so
    --   * jpeg: /usr/lib64/libjpeg.so
    --   * freetype: /usr/lib64/libfreetype.so
    --  * Optional components
    --   * GIF: /usr/lib64/libgif.so
    --   * MYSQL: disabled
    --   * FRIBIDI: /usr/lib64/libfribidi.so
    --   * HARFBUZZ: /usr/lib64/libharfbuzz.so
    --   * GIF: /usr/lib64/libgif.so
    --   * CAIRO: /usr/lib64/libcairo.so
    --   * SVGCAIRO: disabled
    --   * RSVG: disabled
    --   * CURL: /usr/lib64/libcurl.so
    --   * PIXMAN: disabled
    --   * LIBXML2: /usr/lib64/libxml2.so
    --   * POSTGIS: /usr/lib64/libpq.so
    --   * GEOS: /usr/lib64/libgeos_c.so
    --   * FastCGI: /usr/lib64/libfcgi.so
    --   * PROTOBUFC: disabled
    --   * Oracle Spatial: disabled
    --   * Exempi XMP: disabled
    --  * Optional features
    --   * WMS SERVER: ENABLED
    --   * WFS SERVER: ENABLED
    --   * WCS SERVER: ENABLED
    --   * SOS SERVER: disabled
    --   * WMS CLIENT: ENABLED
    --   * WFS CLIENT: ENABLED
    --   * ICONV: ENABLED
    --   * Thread-safety support: disabled
    --   * KML output: ENABLED
    --   * Z+M point coordinate support: ENABLED
    --   * XML Mapfile support: ENABLED
    --  * Mapscripts
    --   * Python: disabled
    --   * PHP: ENABLED
    --   * PHPNG: disabled
    --   * PERL: disabled
    --   * RUBY: disabled
    --   * JAVA: disabled
    --   * C#: disabled
    --   * V8 Javascript: disabled
    --   * Apache Module (Experimental): disabled
    --
    -- PROJECT_BINARY_DIR is set to /root/mapserver-7.6.0/build
    -- Will install files to /opt
    -- Will install libraries to /opt/lib
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /root/mapserver-7.6.0/build
    
[/code]

■makeを実行  
`make`  
■make結果(エラー部分抜粋)

[code]

    [ 69%] Linking C executable sortshp
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQcmdStatus@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQfname@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQsetNoticeProcessor@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQftable@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQstatus@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQftablecol@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQconnectdb@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQescapeStringConn@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `lo_close@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQputCopyEnd@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQgetvalue@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQgetisnull@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQftype@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQfmod@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `lo_creat@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQresultStatus@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `lo_read@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQexec@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQsetClientEncoding@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQgetlength@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQputCopyData@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQgetResult@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `lo_write@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQfinish@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQclear@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQerrorMessage@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQnfields@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `lo_open@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQexecParams@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQntuples@RHPG_9.6' に対する定義されていない参照です
    /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/libgdal.so: `PQresultErrorMessage@RHPG_9.6' に対する定義されていない参照です
    collect2: エラー: ld はステータス 1 で終了しました
    make[2]: *** [CMakeFiles/sortshp.dir/build.make:101: sortshp] エラー 1
    make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/sortshp.dir/all] エラー 2
    make: *** [Makefile:130: all] エラー 2
    
[/code]

■試したこと  
以下を参考にlibpqのパスを/usr/lib64だけを参照するようにしてみたが、解決ならず。  
<https://github.com/openalpr/openalpr/issues/846>

単純にmapserverをインストール完了まで持っていきたいのですが、うまくいきません…。  
よろしくお願いいたします。


CC BY-SA 4.0
2020-07-01T03:50:37.920
68165
2022-12-26T03:05:35.613
2020-07-01T05:17:12.993
3060
40882
question
postgresql cmake
mapserverをmakeする過程で、Linking C executable sortshpにてエラーが発生します。


自己解決しました。pgdg-commonで提供されているgdal30と、geos38を利用する必要があったようです。  
ついでに、protobufを有効にするにはprotobuf-cでした。

cmakeも少し変わって、

[code]

    cmake -DCMAKE_INSTALL_PREFIX=/opt \
        -DCMAKE_PREFIX_PATH="/usr/pgsql-12/bin;/usr/gdal30;/usr/geos38/lib64" \
        -DWITH_PHP=ON -DWITH_CURL=ON -DWITH_CLIENT_WFS=ON -DWITH_CLIENT_WMS=ON \
        -DWITH_KML=ON -DWITH_XMLMAPFILE=ON -DWITH_POSTGIS=ON -DWITH_PROTOBUFC=ON ..
    
[/code]

お騒がせしました。


CC BY-SA 4.0
2020-07-01T08:17:21.207
68180
2020-07-01T12:03:35.883
2020-07-01T12:03:35.883
3060
40882
68165
answer