Как установить и использовать библиотеку NTL с CLion C ++ на macOS - PullRequest
0 голосов
/ 12 ноября 2018

Я почти начинающий с 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;

Итак, я понятия не имею, что делать, чтобы обосноваться. Может быть, у вас есть?

...