2016-10-16 4 views
1

Я пытаюсь преобразовать проект C++ из Windows в Debian, скомпилировав все снова с помощью Cmake.DSO отсутствует в командной строке (с CMake)

Я не очень люблю работать в Linux, но мне удалось установить все правильно.

Это ошибка:

/usr/bin/ld: ../shared/libshared.a(BigNumber.cpp.o): undefined reference to symbol '[email protected]@OPENSSL_1.0.2d' 

//usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2: error adding symbols: DSO missing from command line 

Это действительно похоже на общий вопрос, но я не знаю, что делать с CMake. Я уже видел несколько ответов, как:

DSO missing from command line

How do I tell CMake to link in a static library in the source directory?

How to add linker or compile flag in cmake file?

Я немного запутался, не могли бы вы помочь мне понять, что мне нужно делать с CMake, пожалуйста?

Спасибо

ответ

0

Ошибки вы получаете о недостающем звене для функции, которая была вызвана в файле BigNumber.cpp.

Что происходит, что CMakeLists.txt, скорее всего, отсутствует библиотека в:

TARGET_LINK_LIBRARIES(youApp 
    library1 
    library2 
) 

PS: порядок, в котором вы называете библиотеки также важно, чтобы компоновщик работать должным образом.

+0

Привет, MSIS, спасибо за ваш ответ. поэтому я попытался добавить это в свой CMakeLists.txt, но я думаю, что я нацелен на неправильную вещь. Считаете ли вы, что мне нужно ориентироваться на что-то еще? Потому что я сделал это TARGET_LINK_LIBRARIES ("путь/BigNumber.cpp" "/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.2") – Rikky

+0

К сожалению, я нажал Enter, просто добавлю, что если я попытаюсь настроить таргетинг этот .cpp, у меня есть эта ошибка (не могу указать библиотеки ссылок для целевого «.../BigNumber.cpp», которые не созданы этим проектом.) – Rikky