Проблемы с компиляцией приложения camera_pipe от Halide в Mac OS

Я новичок в Halide и только что успешно скомпилировал Halide из исходников. Я хотел попробовать приложение camera_pipe из исходного кода (https://github.com/halide/Halide/tree/master/apps/camera_pipe), но я получаю следующую ошибку и не знаю, как ее отладить/исправить. Заранее спасибо за любые предложения или помощь!

Моя система работает под управлением Mac OS Sierrar (10.12.3)

Это команда, которую запускал Makefile:

c++ -std=c++11 -I ../../include/ -I ../../tools/ -I ../../apps/support/ -g -fno-rtti camera_pipe_generator.cpp ../../lib/libHalide.a ../../tools/GenGen.cpp -o bin/camera_pipe_exec -L/usr/local/lib -ldl -lpthread -lz

И это вывод ошибки, который я получил:

Undefined symbols for architecture x86_64:
      "_del_curterm", referenced from:
          llvm::sys::Process::FileDescriptorHasColors(int) in libHalide.a(llvm_460_Process.cpp.o)
      "_set_curterm", referenced from:
          llvm::sys::Process::FileDescriptorHasColors(int) in libHalide.a(llvm_460_Process.cpp.o)
      "_setupterm", referenced from:
          llvm::sys::Process::FileDescriptorHasColors(int) in libHalide.a(llvm_460_Process.cpp.o)
      "_tigetnum", referenced from:
          llvm::sys::Process::FileDescriptorHasColors(int) in libHalide.a(llvm_460_Process.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: *** [bin/camera_pipe_exec] Error 1

person user3554661    schedule 16.03.2017    source источник
comment
Откуда взялся ../../lib/libHalide.a? Вы его тоже строили? С тем же набором инструментов?   -  person John Bollinger    schedule 16.03.2017
comment
Кажется, я создал его, когда запустил make из каталога halide (github.com/halide/Halide) , и там он скомпилировался без ошибок. И я думаю, что это было с тем же набором инструментов.   -  person user3554661    schedule 16.03.2017
comment
Обновление: я повторно запустил make-clean и make, поэтому я уверен, что теперь он с той же набором инструментов. Тем не менее, я все еще получаю ту же ошибку. Спасибо за предложение.   -  person user3554661    schedule 16.03.2017


Ответы (1)


Похоже, ваш llvm зависит от terminfo, но канал камеры не связывает его по умолчанию. Попробуйте добавить -ltinfo в make-файл вместе с -lpthread -lz и т. д.

person Andrew Adams    schedule 16.03.2017
comment
Спасибо, у меня не установлен tinfo, и я не знаю, где его взять, но я попытался заменить его на -lcurses и вместо этого получил следующую ошибку: ld: file too small (length=0) file 'bin/Demosaic.o' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) - person user3554661; 17.03.2017
comment
Это текущая команда Makefile: c++ -std=c++11 -I ../../include/ -I ../../tools/ -I ../../apps/support/ -Wall -O3 -I./bin process.cpp bin/camera_pipe.a bin/Demosaic.o bin/Demosaic_ARM.o -o bin/process -L/usr/local/Cellar/libpng/1.6.28/lib -lpng16 -ljpeg -I/usr/local/Cellar/libpng/1.6.28/include/libpng16 -I/usr/local/Cellar/libpng/1.6.28/include/libpng16/.. -lcurses -L/usr/local/lib -ldl -lpthread -lz - person user3554661; 17.03.2017
comment
Извините, а можно ли как-то исправить эту ошибку? - person user3554661; 17.03.2017
comment
Неважно, я сделал make clean, а затем make, и это все исправило! Благодарю вас! - person user3554661; 17.03.2017