Я почти начинающий с CLion, и я не очень хорош в терминалах, консолях и подобных вещах.
Я изучаю C ++ и у меня возникают проблемы с использованием библиотеки NTL .
(на самом деле, я никогда не использовал внешние библиотеки в C ++ и Clion).
Итак, у меня есть macOS High Sierra 10.13.6 и CLion 2018.2.2, C ++ 14 .
В этот момент, похоже, я установил NTL с этой инструкцией
Но я не могу выяснить и (что более важно) понять, что я должен делать, чтобы использовать эту библиотеку в моей программе (C ++).
Я прочитал некоторые инструкции с CMake и CMakeList, однако, как я уже говорил ранее, я полностью начинающий с CLion и консольного материала, поэтому я не могу понять, что там происходит.
Итак, очень признателен, если кто-то испытал, объясните мне простыми словами, как это сделать.
Я не прикреплял экраны, потому что еще нет программы, я все еще борюсь с библиотекой, в том числе.
Как сказано в инструкции по установке, там установлен lib:
После установки вы найдете заголовочные файлы NTL в / usr / local / include / NTL и скомпилированный бинарный файл в /usr/local/lib/libntl.a (это статическая библиотека - если вам нужна общая папка) библиотека, см. ниже). Документация находится в / usr / local / share / doc, с главной точкой входа в /usr/local/share/doc/tour.html.
Спасибо!
Я нашел какое-то решение и попытался его реализовать.
Я добавил в свой CMakeList.txt следующие строки кода:
find_library(ntl STATIC REQUIRED)
include_directories("/usr/local/include/NTL")
add_executable(lesson16 main.cpp)
target_link_libraries(lesson16 "/usr/local/lib/libntl.a")
Итак, программа была успешно построена, пока я не добавил немного кода в main.cpp
Когда я попытался протестировать эту библиотеку, я написал простой код:
#include <iostream>
#include <NTL/ZZ.h>
using namespace std;
using namespace NTL;
int main()
{
ZZ a, b, c;
cin >> a;
cin >> b;
c = (a+1)*(b+1);
cout << c << "\n";
}
После этого я получаю эту ошибку при компиляции:
ld: символ (ы) не найден для архитектуры x86_64, clang: error: linker
Сбой команды с кодом выхода 1 (используйте -v для просмотра вызова)
Эта ошибка возникает в этом месте:
ZZ a, b, c;
Итак, я понятия не имею, что делать, чтобы обосноваться.
Может быть, у вас есть?