在Mac OS上编译Halide的camera_pipe应用程序的问题

在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 
+0

'../../ lib/libHalide.a'从哪里来的?你也建立它了吗?使用相同的工具链? –

+0

我认为我在从halide目录(https://github.com/halide/Halide)运行“make”时构建了它,并且它在那里没有错误地编译。我认为它是用同样的工具链。 – user3554661

+0

更新:我重新运行“make-clean”和“make”,所以我确定它现在使用相同的工具链。但是,我仍然得到同样的错误。感谢您的建议。 – user3554661

看起来你的llvm依赖于terminfo,但摄像机管道默认不会链接它。尝试将-ltinfo与-lpthread -lz等一起添加到makefile中。

+0

谢谢,我没有安装tinfo,我不知道在哪里得到它,但我试着用-lcurses替换它,并且得到了以下错误:ld:file too small(length = 0)file 'bin/Demosaic.o'用于体系结构x86_64 clang:错误:链接器命令失败,退出代码1(使用-v查看调用)' – user3554661

+0

这是当前的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

+0

对不起,但有什么我可以修复的那个错误? – user3554661