Как правильно скомпилировать Synergy на Linux Mint?

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

CMake Warning at cmake/Version.cmake:27 (message):
  Synergy version wasn't set.  Set to 2.0.0
Call Stack (most recent call first):
  CMakeLists.txt:48 (include)


-- Full Synergy version string is '2.0.0-snapshot.b1-1cf3baed'
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sszebrat/synergy-core/build
[  2%] Built target common
[ 13%] Built target arch
[ 22%] Built target base
[ 24%] Built target shared
[ 27%] Built target io
[ 30%] Built target mt
[ 36%] Built target net
[ 46%] Built target server
[ 54%] Built target platform
[ 55%] Built target client
[ 79%] Built target core
[ 80%] Built target synergy-core
[ 81%] Built target synergyc
[ 82%] Built target synergys
[ 83%] Built target gmock
[ 84%] Built target gtest
[ 85%] Linking CXX executable ../../../bin/integtests
../../lib/arch/libarch.a(ArchInternetUnix.cpp.o): In function `CurlFacade::CurlFacade()':
ArchInternetUnix.cpp:(.text+0x191): undefined reference to `curl_global_init'
ArchInternetUnix.cpp:(.text+0x212): undefined reference to `curl_easy_init'
../../lib/arch/libarch.a(ArchInternetUnix.cpp.o): In function `CurlFacade::~CurlFacade()':
ArchInternetUnix.cpp:(.text+0x34b): undefined reference to `curl_easy_cleanup'
ArchInternetUnix.cpp:(.text+0x350): undefined reference to `curl_global_cleanup'
../../lib/arch/libarch.a(ArchInternetUnix.cpp.o): In function `CurlFacade::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
ArchInternetUnix.cpp:(.text+0x3b4): undefined reference to `curl_easy_setopt'
ArchInternetUnix.cpp:(.text+0x3d7): undefined reference to `curl_easy_setopt'
ArchInternetUnix.cpp:(.text+0x47a): undefined reference to `curl_easy_setopt'
ArchInternetUnix.cpp:(.text+0x4bb): undefined reference to `curl_easy_setopt'
ArchInternetUnix.cpp:(.text+0x4cd): undefined reference to `curl_easy_perform'
ArchInternetUnix.cpp:(.text+0x4ed): undefined reference to `curl_easy_strerror'
../../lib/arch/libarch.a(ArchInternetUnix.cpp.o): In function `CurlFacade::urlEncode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
ArchInternetUnix.cpp:(.text+0x69a): undefined reference to `curl_easy_escape'
ArchInternetUnix.cpp:(.text+0x753): undefined reference to `curl_free'
collect2: error: ld returned 1 exit status
src/test/integtests/CMakeFiles/integtests.dir/build.make:299: recipe for target 'bin/integtests' failed
make[2]: *** [bin/integtests] Error 1
CMakeFiles/Makefile2:1089: recipe for target 'src/test/integtests/CMakeFiles/integtests.dir/all' failed
make[1]: *** [src/test/integtests/CMakeFiles/integtests.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Я попытался исправить это, добавив эту строку в Cmakelists.txt:

link_libraries(libcurl)

но это вызывает другую ошибку:

[  2%] Built target common
[ 13%] Built target arch
[ 22%] Built target base
[ 24%] Built target shared
[ 27%] Built target io
[ 30%] Built target mt
[ 36%] Built target net
[ 46%] Built target server
[ 54%] Built target platform
[ 55%] Built target client
[ 79%] Built target core
[ 80%] Linking CXX executable ../../../bin/synergy-core
/usr/bin/ld: cannot find -llibcurl
collect2: error: ld returned 1 exit status
src/cmd/core/CMakeFiles/synergy-core.dir/build.make:115: recipe for target 'bin/synergy-core' failed
make[2]: *** [bin/synergy-core] Error 1
CMakeFiles/Makefile2:802: recipe for target 'src/cmd/core/CMakeFiles/synergy-core.dir/all' failed
make[1]: *** [src/cmd/core/CMakeFiles/synergy-core.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Кто-нибудь знает как я могу исправить эту ошибку и скомпилировать синергию?

Вам действительно нужно скомпилировать его для вклада или просто использовать синергию? Потому что на самом деле есть пакет для синергия в aptitude, который потребует меньше работы

MathieuAuclair 21.04.2018 17:23

Я видел этот пакет, но, к сожалению, он устарел. И да, потому что я хочу им пользоваться. Для меня покупать двоичные файлы довольно дорого ...

sebstack 22.04.2018 12:48

Какую версию синергии вы ищете? Есть PPA для v1.8.8, также ваша система 64-битная или 32-битная?

MathieuAuclair 22.04.2018 18:37

Я ищу версию 2.0, а это 64-битная система.

sebstack 23.04.2018 20:17

Хммм ... он работает для меня в Archlinux, он компилируется правильно, похоже, что вам не хватает библиотеки, можете ли вы обновить описание вашего вопроса и добавить все команды, которые вы сделали для этого?

MathieuAuclair 24.04.2018 21:00

Я выполнил точные инструкции, перечисленные на вики-странице, на которую я указал в разделе «Linux» в конце страницы.

sebstack 25.04.2018 22:02

решение сработало?

MathieuAuclair 29.05.2018 18:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
7
226
1

Ответы 1

Вам не хватает библиотеки libcurl, попробуйте установить ее с помощью apt-get install libcurl4-gnutls-dev, тогда вы сможете скомпилировать проект.

/usr/bin/ld: cannot find -llibcurl

CMake не может найти библиотеку в вашей системе. Под Linux библиотеки часто устанавливаются под систему, а не в проект, как окна.

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