Как я могу скомпилировать Hazelcast C ++ Client с помощью компилятора g ++ - 8.2 - PullRequest
0 голосов
/ 26 декабря 2018

Есть ли какое-либо решение для компиляции с g++-8.2 для проекта с использованием клиентской библиотеки Hazelcast C ++ ?

Если я скомпилирую с g ++-8.2 , он показывает много ошибок "неопределенная ссылка ...".

При использовании g ++ - 4,9 он работает хорошо.

Эта проблема немного похожа на обсуждение на этом форуме группы Google , в котором указано, что ошибки компиляции связаны с неверной версией компилятора.

Однакокомпилятор g ++ - 4.9 слишком стар, чтобы я мог построить свой большой проект.

Пример кода можно найти на официальном веб-сайте , если кому-то нужно попробовать.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Я наконец решил ее, обновив библиотеку с 3.10 до 3.11.Библиотека 3.11 создается вручную с использованием g++-8.2 из исходного кода Hazelcast в Github.

, поскольку после сборки hazelcast-cpp-clienet нет пакета make installпоэтому я использую некоторые сценарии, чтобы расположить заголовочные файлы вместе в одном каталоге (hazelcast-cpp-client/include), чтобы программа могла легко связать библиотеку и заголовки.

Сценарий сборки:

#!/bin/bash

# Package Requirements:
#   - asio

mkdir hazelcast-cpp-client ; cd hazelcast-cpp-client

# Build
git clone https://github.com/hazelcast/hazelcast-cpp-client.git
mv hazelcast-cpp-client tmp
cd tmp
git checkout v3.11
mkdir release ; cd release
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_BUILD_TYPE=Release ..
make


# Back to 'hazelcast-cpp-client' directory
cd ../..

# Copy .a library out from tmp/
cp tmp/release/*.a .

# Arrange all header files in an one directory  
cp -r tmp/hazelcast/include .
cp -r tmp/hazelcast/generated-sources/include/hazelcast/client/protocol ./include/hazelcast/client
rm tmp/external/include/*.md # We don't need readme file
cp -r tmp/external/include/* ./include

# Delete tmp directory
rm -rf tmp

Компиляциякоманда выглядит так:

g++ -std=c++11 \
    -I/path/to/hazelcast-cpp-client/include \
    hz_test.cpp \
    /path/to/hazelcast-cpp-client/libHazelcastClient3.11_64.a \
    -lpthread
0 голосов
/ 27 декабря 2018

Спасибо за сообщение об этой проблеме.Мы не тестировали с компилятором g ++ - 8.2.Я открыл вопрос, чтобы решить проблемы: https://github.com/hazelcast/hazelcast-cpp-client/issues/494

Можете ли вы сказать мне также вашу среду ОС?Какой дистрибутив и версия?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...