Есть ли решение, чтобы сделать компиляцию с g++-8.2
для проекта с использованием Клиентская библиотека Hazelcast C ++ ?
Если я скомпилирую это с г ++ — 8,2, он показывает много ошибок «неопределенная ссылка …».
При использовании г ++ — 4,9, это работает хорошо.
Вопрос немного похож на обсуждение в этом Форум группы Google, что указывало на ошибки компиляции из-за неправильной версии компилятора.
Тем не менее, компилятор г ++ — 4,9 слишком стар для меня, чтобы построить свой большой проект.
Пример кода можно найти в официальный сайт организации, если кому-то нужно попробовать.
Я наконец решил это, обновив библиотеку с 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
Спасибо, что сообщили об этой проблеме. Мы не тестировали с компилятором g ++ — 8.2. Я открыл вопрос, чтобы решить проблемы: https://github.com/hazelcast/hazelcast-cpp-client/issues/494
Можете ли вы сказать мне также вашу среду ОС? Какой это дистрибутив и версия?