Не могу установить библиотеку TA Lib
Ответы (2 шт):
Мне помогла настройка среды выполнения. Вот часть инструкции с https://xn-----6kcjd7aa0cfnmaec4e.xn--p1ai/%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%BE-%D0%BA%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-talib-%D0%B2-%D0%B2%D0%B8%D0%BD%D0%B4%D0%BE%D0%B2%D1%81-10/
- Откройте Панель управления и найдите раздел Система и безопасность. Найдите раздел Система. Нажмите Дополнительные параметры и перейдите во вкладку Дополнительно.
- Нажмите Переменные среды. В разделе Переменные среды пользователя нажмите Создать. В поле Имя переменной введите "TA-LIB", а в поле Значение переменной вставьте путь к папке TA-LIB (туда, где вы распаковали архив со скачанной библиотекой), например "С:ta-lib"/ 3.Нажмите ОК во всех открытых окнах.
Так объяснять очень сложно по командной строке видно ( вы очень далеко в начале пути )- он по инструкции сразу ни у кого не ставиться и смотря для чего у них есть сборки для винды - они просто накатываются - а python это обертка ставил из под linux там компилировать нужно сначала библиотеку так как она в c++ ta-lib-0.4.0-src.tar.gz с этого файла - брать на гид или оф сайте - потом только обертка накатывается - я ставил 0.6.1 последняя стабильная - перед оберткой - терялись библиотеки т. е пути - их жестко надо в командах прописывать ну и зависимости - ссылка выше numpy и тд - это уже в инструкции . добавляю инструкцию которую составлял она на компиляцию библиотеки и рабочая с возможными проблемами и их решениями что бы было понятно - это основа после этого библиотеки можно использовать при обертке питона # Инструкция по сборке TA-Lib и устранению ошибок
Описание
Данное руководство поможет собрать библиотеку TA-Lib из исходного кода на Linux через WSL (Windows Subsystem for Linux) с использованием CMake и устранить возможные ошибки, которые могут возникнуть в процессе.
Предварительные шаги
Установите необходимые зависимости
Перед началом убедитесь, что все инструменты для сборки установлены:
sudo apt-get update
sudo apt-get install -y build-essential cmake make gcc g++
Если вы планируете использовать генератор Ninja, установите его:
sudo apt-get install -y ninja-build
Скачайте исходный код TA-Lib
Загрузите исходный код TA-Lib с официального сайта: Ссылка для скачивания
Распакуйте архив:
tar -xvzf ta-lib-0.4.0-src.tar.gz -C /path/to/your/directory
Перейдите в папку с проектом
cd /path/to/your/directory/ta-lib
Процесс сборки
1. Создайте папку для сборки
Создайте отдельную папку build для файлов сборки:
mkdir build
cd build
2. Настройте проект с помощью CMake
Используйте CMake для генерации файлов сборки. Если используете стандартные Makefiles:
cmake .. -G "Unix Makefiles"
Если вы хотите использовать Ninja:
cmake .. -G "Ninja"
3. Запустите сборку
После успешной настройки выполните команду:
make
или, если вы выбрали Ninja:
ninja
После завершения сборки в папке build/lib появится файл libta_lib.a.
Решение возможных ошибок
1. Ошибка: Не найден файл ta_frame.h
Описание:
Компилятор сообщает, что файл ta_frame.h отсутствует.
Решение:
Добавьте путь к папке, где находится этот файл, в CMakeLists.txt:
include_directories(
c/include
c/src/ta_abstract/frames
)
2. Ошибка: Не найден файл ta_test_priv.h
Описание:
Компилятор не может найти файл ta_test_priv.h, который используется для тестирования.
Решение:
Добавьте путь к директории c/src/tools/ta_regtest в CMakeLists.txt:
include_directories(
c/src/tools/ta_regtest
)
Если тесты не нужны, вы можете исключить их из сборки:
list(FILTER TA_SRC EXCLUDE REGEX "c/src/tools/ta_regtest/.*")
3. Ошибка: excel_glue.c вызывает проблемы
Описание:
Файл excel_glue.c содержит макросы, которые не определены.
Решение:
Исключите этот файл из сборки, добавив в CMakeLists.txt:
list(FILTER TA_SRC EXCLUDE REGEX "c/src/ta_abstract/excel_glue.c")
4. Предупреждение: -Wformat-security
Описание: Компилятор предупреждает о возможной небезопасной операции с форматом.
Решение:
В файле gen_code.c замените строку:
fprintf(out, prefix);
на:
fprintf(out, "%s", prefix);
Полный пример CMakeLists.txt
Вот рабочий пример CMakeLists.txt с учётом всех упомянутых изменений:
cmake_minimum_required(VERSION 3.10)
# Укажите название проекта
project(TA-Lib C)
# Укажите папки с заголовочными файлами
include_directories(
c/include
c/src/ta_abstract
c/src/ta_abstract/frames
c/src/ta_common
c/src/ta_func
c/src/tools/ta_regtest
)
# Найдите все исходные файлы
file(GLOB_RECURSE TA_SRC c/src/**/*.c)
# Исключите excel_glue.c
list(FILTER TA_SRC EXCLUDE REGEX "c/src/ta_abstract/excel_glue.c")
# Исключите тесты (если не нужны)
list(FILTER TA_SRC EXCLUDE REGEX "c/src/tools/ta_regtest/ta_test_func/.*")
# Создайте статическую библиотеку
add_library(ta_lib STATIC ${TA_SRC})
# Укажите путь для вывода библиотек
set_target_properties(ta_lib PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
Итог
После выполнения всех шагов в папке build/lib должен появиться файл libta_lib.a. Вы можете использовать его в своих проектах, указав путь к библиотеке и заголовочным файлам.
Пример использования:
gcc -o your_program your_program.c -I /path/to/ta-lib/c/include \
-L /path/to/ta-lib/build/lib -lta_lib
