Проблема связывания библиотеки сериализации BoostC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема связывания библиотеки сериализации Boost

Сообщение Anonymous »

Я пытаюсь связать библиотеку сериализации Boost, но она дает следующую ошибку < /p>
❯ make
/opt/homebrew/bin/g++-14 -std=c++17 -c sd.cpp -I/opt/homebrew/Cellar/boost/1.87.0/include -I/opt/homebrew/opt/openssl@3/include
/opt/homebrew/bin/g++-14 -o sd sd.o -L/opt/homebrew/opt/openssl@3/lib -lssl -lcrypto -L/opt/homebrew/Cellar/boost/1.87.0/lib -lboost_serialization
Undefined symbols for architecture arm64:
"boost::archive::text_iarchive_impl::load(std::__cxx11::basic_string&)", referenced from:
void boost::archive::load_access::load_primitive(boost::archive::text_iarchive&, std::__cxx11::basic_string&) in sd.o
"boost::archive::text_iarchive_impl::text_iarchive_impl(std::istream&, unsigned int)", referenced from:
boost::archive::text_iarchive::text_iarchive(std::istream&, unsigned int) in sd.o
"boost::archive::text_oarchive_impl::save(std::__cxx11::basic_string const&)", referenced from:
void boost::archive::save_access::save_primitive(boost::archive::text_oarchive&, std::__cxx11::basic_string const&) in sd.o
"boost::archive::text_oarchive_impl::text_oarchive_impl(std::ostream&, unsigned int)", referenced from:
boost::archive::text_oarchive::text_oarchive(std::ostream&, unsigned int) in sd.o
"boost::archive::basic_text_iprimitive::~basic_text_iprimitive()", referenced from:
boost::archive::text_iarchive_impl::~text_iarchive_impl() in sd.o
boost::archive::text_iarchive_impl::~text_iarchive_impl() in sd.o
"boost::archive::basic_text_oprimitive::~basic_text_oprimitive()", referenced from:
boost::archive::text_oarchive_impl::~text_oarchive_impl() in sd.o
boost::archive::text_oarchive_impl::~text_oarchive_impl() in sd.o
ld: symbol(s) not found for architecture arm64
collect2: error: ld returned 1 exit status
make: *** [sd] Error 1
< /code>
Я попытался переустановить повышение по < /p>
brew reinstall boost
< /code>
Но проблема остается прежней, я компилируюсь, используя файл make < /p>
CXX=/opt/homebrew/bin/g++-14
CXXFLAGS_OPENSSL=-I/opt/homebrew/opt/openssl@3/include
CXXFLAGS_BOOST=-I/opt/homebrew/Cellar/boost/1.87.0/include
LDFLAG_OPENSSL=-L/opt/homebrew/opt/openssl@3/lib -lssl -lcrypto
LDFLAG_BOOST=-L/opt/homebrew/Cellar/boost/1.87.0/lib -lboost_serialization

sd: sd.o
$(CXX) -o sd sd.o $(LDFLAG_OPENSSL) $(LDFLAG_BOOST)

sd.o: sd.cpp
$(CXX) -std=c++17 -c sd.cpp $(CXXFLAGS_BOOST) $(CXXFLAGS_OPENSSL)
< /code>
Я также попробовал (после запроса CHATGPT) < /p>
file /opt/homebrew/Cellar/boost/1.87.0/lib/libboost_serialization.dylib
< /code>
, который правильно дает < /p>
Mach-O 64-bit dynamically linked shared library arm64


Подробнее здесь: https://stackoverflow.com/questions/794 ... on-library
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»