неопределенная ссылка на `uuid_generate@UUID_1.0 ' - PullRequest
0 голосов
/ 06 декабря 2018

Я работаю над проектом git (c ++), до сегодняшнего дня все было хорошо.Я мог бы собрать без каких-либо проблем.(Я должен отметить, что я работаю под Fedora 29) Серьезные изменения в cmake произошли ранее.Моей версии cmake, которую я использовал, тогда было явно недостаточно.Поэтому мне пришлось обновить свой cmake (то, чего я никогда раньше не делал, и, видимо, я должен был поступить неправильно…) Сначала я сделал:

sudo dnf remove cmake

Затем я установил последнюю версию cmake непосредственно дляскачать на официальном сайте https://cmake.org/download/ (3.13.1)

Хорошо, установка, видимо, прошла хорошо. cmake 3.13.1 работает ...

Теперь я пытаюсьперекомпилируйте проект, и тогда эта ошибка появляется

/usr/bin/ld: //usr/lib64/libSM.so.6: undefined reference to `uuid_generate@UUID_1.0'
/usr/bin/ld: //usr/lib64/libSM.so.6: undefined reference to `uuid_unparse_lower@UUID_1.0'

Вот более полная ошибка:

 [ 69%] Linking CXX executable ../../../../../Build/bin/DecimaterGui
/usr/bin/ld: //usr/lib64/libSM.so.6: undefined reference to `uuid_generate@UUID_1.0'
/usr/bin/ld: //usr/lib64/libSM.so.6: undefined reference to `uuid_unparse_lower@UUID_1.0'
collect2: error: ld a retourné le statut de sortie 1
make[5]: *** [src/OpenMesh/Apps/Decimating/DecimaterGui/CMakeFiles/DecimaterGui.dir/build.make:192: Build/bin/DecimaterGui] Error 1
make[4]: *** [CMakeFiles/Makefile2:814: src/OpenMesh/Apps/Decimating/DecimaterGui/CMakeFiles/DecimaterGui.dir/all] Error 2
make[3]: *** [Makefile:152: all] Error 2
make[2]: *** [CMakeFiles/OpenMesh.dir/build.make:111: OpenMesh-prefix/src/OpenMesh-stamp/OpenMesh-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/OpenMesh.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Проблема в том, что когда я сделал

sudo dnf remove cmake

Я пошел слишком быстро, и я, вероятно, удалил другие пакеты, которые были полезны ... Очевидно, dnf также удаляет зависимые пакеты ... Я думаю, что отсюда и проблема, но это только гипотеза ...

Я не знаю, действительно ли это полезно, но в проекте мы используем другие git-проекты в качестве подмодулей (например, OpenMesh, Assimp ...). Если я просто делаю make, появляется ошибка с OpenMesh (именно бином DecimaterGui). Но если я скомпилирую с make -j 4, ошибкаТак же появляется с другими библиотеками (и другим bin).

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

Я надеюсь, что я был достаточно точен и что мой английский был достаточно ясным.Заранее благодарю за ответы.

1 Ответ

0 голосов
/ 12 декабря 2018

Вы, должно быть, удалили libuuid-devel, попробуйте переустановить его:

dnf install libuuid-devel
...