我正在编写c ++上的一些函数,以便编译器减去css。
我安装了nodejs
,less
。
我创建了一个较少的文件test.less
@color: red;
a{color:@color;}
当我在终端上运行命令时:
lessc test.less test.css
它创建了一个名为test.css
的文件css,但是当我通过c ++运行此命令时,它会返回错误。请帮我。这是我的c ++函数:
std::string shell_exec( std::string cmd )
{
std::string result = "";
FILE* pipe = popen(cmd.c_str(), "r");
if (pipe == NULL)
{
return result;
}
char buffer[128];
while(!feof(pipe))
{
if(fgets(buffer, 128, pipe) != NULL)
{
result += buffer;
}
}
pclose(pipe);
return result;
}
shell_exec("lessc test.less test.css");
我收到了一个错误:
/usr/bin/env: node: No such file or directory
/usr/bin/node
已存在。
谢谢@Bass Jobsen,@ Oright Races in Orbit
我修正了添加绝对路径到lessc和nodejs
shell_exec("/usr/bin/node /usr/bin/lessc test.less test.css");
答案 0 :(得分:1)
来自:https://unix.stackexchange.com/a/29620
#!/ usr / bin / env python的优点是它会使用任何东西 python可执行文件首先出现在用户的$ PATH中。
因此,您应该将节点添加到运行脚本的用户的$PATH
,请参阅:https://stackoverflow.com/a/13210246/1596547
请注意,我无法编译您的代码,但我可以使用以下代码:
int main()
{
std::string r = shell_exec("lessc test.less test.css");
}
也可以使用using namespace std
和string
代替std:string
。