У меня проблемы с получением boost / openssl для ссылки на мой проект C ++ в CLion.Я пытаюсь собрать свою программу в CLion, нажимая кнопку build, хотя я также пытался просто скомпилировать вручную с g ++, но безрезультатно.Мой CMakeLists.txt выглядит так:
cmake_minimum_required(VERSION 3.12)
project(FinalProject)
set(CMAKE_CXX_STANDARD 11)
# Set OpenSSL dir, this should be default on linux/mac
set(OPENSSL_INCLUDE_DIR, /usr/local/opt/openssl/bin/openssl)
# Get OpenSSL
find_package(openssl REQUIRED)
# Get cppRestSDK
find_package(cpprestsdk REQUIRED)
find_package(boost REQUIRED)
# Compile + Link
add_executable(FinalProject main.cpp)
target_link_libraries(FinalProject cpprestsdk::cpprest)
Я пытался изменить
target_link_libraries(FinalProject cpprestsdk::cpprest)
на
target_link_libraries(FinalProject boost ssl cpprestsdk::cpprest)
и многие другие варианты, чтобы гарантировать, что все зависимостиЯ использую get load (OpenSSL, cpprestsdk и Boost), однако я не могу заставить их работать, так как я получаю различные ошибки, такие как:
"library not found for "-lssl", "-lboost", "-lopenssl"
Я установил openssl с помощью homebrew, нокогда я запускаю homebrew link openssl
, я получаю: "Refusing to link macOS-provided software: openssl"
и добавление --force
дает мне то же самое сообщение об ошибке.
Я создал символические ссылки в путях , упомянутых здесь , но нетпомогло.
Запуск CMakeLists.txt только с target_link_libraries(FinalProject cpprestsdk::cpprest)
дает мне:
Undefined symbols for architecture x86_64:
"boost::system::detail::system_category_ncx()", referenced from:
boost::system::system_category() in main.cpp.o
"boost::system::detail::generic_category_ncx()", referenced from:
boost::system::generic_category() in main.cpp.o
ld: symbol(s) not found for architecture x86_64
Но я не могу понять, почему, поскольку он кажется Boost загружается нормально(Я получаю сообщение «Boost Version 1.68» при сборке с target_link_libraries(FinalProject PRIVATE cpprestsdk::cpprest boost)
, но также получаю сообщение об ошибке ld: library not found for -lboost
).
В моем файле main.cpp (только файл с кодом) я включаю:
#include <iostream>
#include <string>
#include <cpprest/http_client.h>
#include <cpprest/filestream.h>
#include "openssl/bio.h"
#include "openssl/ssl.h"
#include "openssl/err.h"
Кто-нибудь знает, что мне не хватает?Я предполагаю, что это что-то простое в моем CMakeLists.txt, но не уверен.Моя единственная версия OpenSSL - 1.0.2q, и я нахожусь на MacOS Mojave.Запуск openssl в моем терминале работает, поэтому он, похоже, находится в моем PATH.На самом деле в растерянности, так как я не уверен, что не так в данный момент.Любая помощь приветствуется!