Завиток с Catalina C ++ завершается ошибкой и получает «неопределенные символы для архитектуры x86_64» - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь запустить пример программы на С ++ с Catalina 10.15:

#include </usr/local/opt/curl/include/curl/curl.h>

int main(void) {

    CURL* curl;
    CURLcode result;

    curl = curl_easy_init();
    curl_easy_setopt(curl, CURLOPT_URL, "https://www.wikipedia.org");

    result = curl_easy_perform(curl);

    curl_easy_cleanup(curl);

    return 0;
}

Я установил curl с:

brew install curl

Я не понимаю, почему это не работает и я получаю:

Scanning dependencies of target 2700
[ 50%] Building CXX object CMakeFiles/2700.dir/main.cpp.o
[100%] Linking CXX executable 2700
Undefined symbols for architecture x86_64:
  "_curl_easy_cleanup", referenced from:
      _main in main.cpp.o
  "_curl_easy_init", referenced from:
      _main in main.cpp.o
  "_curl_easy_perform", referenced from:
      _main in main.cpp.o
  "_curl_easy_setopt", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [2700] Error 1
make[2]: *** [CMakeFiles/2700.dir/all] Error 2
make[1]: *** [CMakeFiles/2700.dir/rule] Error 2
make: *** [2700] Error 2

Мой CMakeLists.txt выглядит следующим образом:

cmake_minimum_required(VERSION 3.15.3)
project(2700)

include_directories(/usr/local/opt/curl/include/)

set(CMAKE_CXX_STANDARD 17)

add_executable(2700 main.cpp )

Я использую CLion, и я довольно плохо знаком с C ++, особенно в MacOS.

Что я могу сделать, чтобы завиток работал, а проблема не возникала?

1 Ответ

2 голосов
/ 27 января 2020

Я понял, что мне нужно сделать ссылку в CMakeLists.txt:

Это работает:

cmake_minimum_required(VERSION 3.15.3)
project(2700)

include_directories(/usr/local/opt/curl/include/)

set(CMAKE_CXX_STANDARD 17)

set(CURL_LIBRARY "-lcurl")
find_package(CURL REQUIRED)

add_executable(2700 main.cpp )

include_directories(${CURL_INCLUDE_DIR})
target_link_libraries(2700 ${CURL_LIBRARIES})
...