在Mac OS上编译Halide的camera_pipe应用程序的问题
我是Halide的新手,刚刚成功从源代码编译Halide。我想从源代码(https://github.com/halide/Halide/tree/master/apps/camera_pipe)尝试camera_pipe应用程序,但出现以下错误,我不确定如何调试/修复它。提前感谢您的任何建议或帮助!在Mac OS上编译Halide的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
看起来你的llvm依赖于terminfo,但摄像机管道默认不会链接它。尝试将-ltinfo与-lpthread -lz等一起添加到makefile中。
谢谢,我没有安装tinfo,我不知道在哪里得到它,但我试着用-lcurses替换它,并且得到了以下错误:ld:file too small(length = 0)file 'bin/Demosaic.o'用于体系结构x86_64 clang:错误:链接器命令失败,退出代码1(使用-v查看调用)' – user3554661
这是当前的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' – user3554661
对不起,但有什么我可以修复的那个错误? – user3554661
'../../ lib/libHalide.a'从哪里来的?你也建立它了吗?使用相同的工具链? –
我认为我在从halide目录(https://github.com/halide/Halide)运行“make”时构建了它,并且它在那里没有错误地编译。我认为它是用同样的工具链。 – user3554661
更新:我重新运行“make-clean”和“make”,所以我确定它现在使用相同的工具链。但是,我仍然得到同样的错误。感谢您的建议。 – user3554661