Как я могу скомпилировать Hazelcast C ++ Client с помощью компилятора g ++ — 8.2

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

Если я скомпилирую это с г ++ — 8,2, он показывает много ошибок «неопределенная ссылка …».

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

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

Тем не менее, компилятор г ++ — 4,9 слишком стар для меня, чтобы построить свой большой проект.

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

0

Решение

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

Потому что нет make install после строительства hazelcast-каст-clienet пакет, поэтому я использую некоторые сценарии, чтобы расположить заголовочные файлы вместе в одном каталоге (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
1

Другие решения

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

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

0

По вопросам рекламы [email protected]