Linux 尝试在Ubuntu上构建OpenShadingLanguage时出错
我已经设置了所有依赖项,据我所知,ccmake显示所有的依赖项都已找到。但是,当我运行make时,会得到以下输出:Linux 尝试在Ubuntu上构建OpenShadingLanguage时出错,linux,ubuntu,build,include,makefile,Linux,Ubuntu,Build,Include,Makefile,我已经设置了所有依赖项,据我所知,ccmake显示所有的依赖项都已找到。但是,当我运行make时,会得到以下输出: shanesimmsart@shanesimmsart-pc:~/OpenShadingLanguage/build$ make [ 1%] Building CXX object src/liboslcomp/CMakeFiles/oslcomp.dir/ast.cpp.o In file included from /home/shanesimmsart/OpenShadin
shanesimmsart@shanesimmsart-pc:~/OpenShadingLanguage/build$ make
[ 1%] Building CXX object src/liboslcomp/CMakeFiles/oslcomp.dir/ast.cpp.o
In file included from /home/shanesimmsart/OpenShadingLanguage/src/include/osl_pvt.h:31:0,
from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:35:
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslconfig.h:109:13: error: ‘OIIO::string_view’ has not been declared
using OIIO::string_view;
^
In file included from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:35:0:
/home/shanesimmsart/OpenShadingLanguage/src/include/osl_pvt.h:54:1: error: ‘string_view’ does not name a type
string_view shadertypename (ShaderType s);
^
/home/shanesimmsart/OpenShadingLanguage/src/include/osl_pvt.h:58:34: error: ‘string_view’ was not declared in this scope
ShaderType shadertype_from_name (string_view name);
^
/home/shanesimmsart/OpenShadingLanguage/src/include/osl_pvt.h:76:32: error: ‘string_view’ was not declared in this scope
ShaderUse shaderuse_from_name (string_view name);
^
In file included from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:36:0,
from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:36:
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:52:19: error: ‘string_view’ has not been declared
bool compile (string_view filename,
^
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:54:19: error: ‘string_view’ has not been declared
string_view stdoslpath = string_view());
^
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:59:26: error: ‘string_view’ has not been declared
bool compile_buffer (string_view sourcecode, std::string &osobuffer,
^
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:61:26: error: ‘string_view’ has not been declared
string_view stdoslpath = string_view());
^
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:65:5: error: ‘string_view’ does not name a type
string_view output_filename () const;
^
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:54:56: error: ‘string_view’ was not declared in this scope
string_view stdoslpath = string_view());
^
/home/shanesimmsart/OpenShadingLanguage/src/include/OSL/oslcomp.h:61:63: error: ‘string_view’ was not declared in this scope
string_view stdoslpath = string_view());
^
In file included from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:37:0,
from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:36:
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.h:354:5: error: ‘string_view’ does not name a type
string_view shadertypename () const;
^
In file included from /home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:36:0:
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:69:19: error: ‘string_view’ has not been declared
bool compile (string_view filename,
^
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:71:19: error: ‘string_view’ has not been declared
string_view stdoslpath);
^
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:73:26: error: ‘string_view’ has not been declared
bool compile_buffer (string_view sourcecode,
^
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:76:26: error: ‘string_view’ has not been declared
string_view stdoslpath);
^
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/oslcomp_pvt.h:249:5: error: ‘string_view’ does not name a type
string_view output_filename () const { return m_output_filename; }
^
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp: In member function ‘virtual void OSL::pvt::ASTshader_declaration::print(std::ostream&, int) const’:
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:195:59: error: ‘shadertypename’ was not declared in this scope
out << "(" << nodetypename() << " " << shadertypename()
^
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp: At global scope:
/home/shanesimmsart/OpenShadingLanguage/src/liboslcomp/ast.cpp:204:1: error: ‘string_view’ does not name a type
string_view
^
make[2]: *** [src/liboslcomp/CMakeFiles/oslcomp.dir/ast.cpp.o] Error 1
make[1]: *** [src/liboslcomp/CMakeFiles/oslcomp.dir/all] Error 2
make: *** [all] Error 2
这似乎是OpenImageIO中包含的string_view.h的问题,但是当我查看/usr/include/OpenImageIO/时,string_view.h就在那里。据我所知,OIIO是1.5版的最新版本,所以我也不能想象这是一个版本问题,尽管我不排除这一点
如果您有任何建议,我们将不胜感激。没有错误消息表明未找到该文件,因此请注意,它是正确的,没有任何关系:不是编译器找不到它。如果确实可以在string_view.h中找到丢失的声明,那么要么它没有被正确地包含在需要包含的位置,要么它还有其他的ifdef?这使得编译器无法看到所需的声明。再次感谢您的帮助。我已经尝试过进入oslconfig.h和string_view.h并使用include,但运气不好,尽管我应该调整这样的内容似乎很愚蠢。不确定我应该在这里更改什么。你应该找到支持此软件的邮件列表或论坛,并询问他们。