Библиотека ZeroMQ, связывающаяся: неопределенная ссылка на символ, ошибка, добавляющая символы: DSO, отсутствующий в командной строке

При компиляции простого файла C++, который использует ZeroMQ, я добираюсь:

/usr/bin/ld: /tmp/ccbHbSAY.o: undefined reference to symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

то, которое я думаю, пытается сказать мне, что я называю символ, который не существует в общей библиотеке, которую я связываю. Вот моя команда компиляции:

gcc -Wall -I/usr/local/include zeromq_worker.cpp /usr/local/lib/libzmq.so.5.0.2

Я попробовал libzqm.so и libzmq.so.5, которые находятся также в /usr/local/lib, но та же ошибка происходит

Кроме того, _ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4 скомпилированное название некоторой структуры. Который является этим? Я думаю, что может помочь пониманию, куда ошибка прибывает из.

0
задан 15 August 2017 в 15:48

1 ответ

Используйте g++ не gcc, если это - файл C++.

Также не обычно явно указать библиотеку тот путь: обычно необходимо дать директиву ссылки как -lzmq предшествовавший при необходимости директивой пути поиска библиотеки формы -L /usr/local/lib.

Так попытка

g++ -Wall -I /usr/local/include zeromq_worker.cpp -L /usr/local/lib -lzmq
1
ответ дан 2 November 2019 в 19:13

Другие вопросы по тегам:

Похожие вопросы: