В цели cmake opentelemetry-cpp отсутствует одна библиотека.Linux

Ответить
Anonymous
 В цели cmake opentelemetry-cpp отсутствует одна библиотека.

Сообщение Anonymous »

Я работаю над этим проектом, в котором используется conan, интегрированный с командами cmake, для установки зависимостей проекта. Он создается для Win и Linux. Сейчас я столкнулся с проблемой opentelemetry-cpp/1.14.2. На самом деле я хочу заменить экспортер http на grpc, чтобы отправлять данные телеметрии на сервер. Я изменил методы, связанные с http, на методы grpc и посмотрел на эту ошибку: «неразрешенный внешний символ для NewStub(...), на который ссылаются в MakeTraceServicesStub(...)» во время сборки. Эта ошибка генерируется для всех трех — трассировок, журналов и метрик. Копаясь, я обнаружил, что цель opentelemetry-cpp не включает opentelemetry_proto_grpc.lib в качестве одного из этих компонентов в файле рецепта, который, в свою очередь, не включает определения, даже если файл lib присутствует в каталоге opentelemetry lib в conan. кэш. Затем я добавил библиотеку opentelemetry_proto_grpc в CMakeLists.txt проектов, которым она требуется. Теперь он отлично собирается на Win, но не на Linux. Когда я проверил файлы .vcxproj, opentelemetry_proto_grpc.lib включается в поле «Дополнительные зависимости» с абсолютным путем, тогда как в Linux команда ninja получает библиотеку как -lopentelemetry_proto_grpc вместо /libopentelemetry_proto_grpc.a. Но другие библиотеки, являющиеся частью компонентов цели opentelemetry-cpp, добавляются в команду ninja со своим полным путем. Рассматривает ли Linux этот -lopentelemetry_proto_grpc как .so, и поскольку его не удалось найти в списке добавленных путей к библиотекам, компоновщику не удается найти символы для этих методов? Если да, пожалуйста, помогите мне объявить его так же, как объявляются другие библиотеки opentelemetry-cpp (с абсолютным путем и как статическая библиотека). Более того, если есть способ добавить эту библиотеку в цель opentelemetry-cpp, это было бы здорово, поскольку это само позаботится об этом. Я не вижу никаких возможностей включить это в рецепте opentelemetry-cpp.
Я добавил библиотеку opentelemetry_proto_grpc в CMakeLists.txt соответствующих проектов. Я изучил рецепт этого пакета, а также проверил командный сценарий ниндзя и сведения о зависимостях в файлах .vcxproj.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ake-target
Ответить

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

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

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

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

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