我从g++
文件上的Perl脚本调用hello world.cpp
,该文件包含来自path\include\ddk
的标头。我将参数列表作为参数给出{{1}分隔的包含路径}。问题是它需要整体而且我得到的信息:
;
与ignoring nonexistent directory "D:\gnu\gcc-4.8.1\include\GL;D:\gnu\gcc-4.8.1\include\ddk"
分开包括相同。
系统调用类似于:
,
的 g++ -v -c -fno-show-column #S\\\$> -o #B\\\$%\.o #opt
-I$i_incl
实际上是:
$i_incl
我做错了什么?
这是代码的简化版本示例:
D:\gnu\gcc-4.8.1\include\GL;D:\gnu\gcc-4.8.1\include\ddk
use strict;
use warnings;
use File::Spec::Functions qw(catfile);
my $compilerRoot = "D:\\gnu\\gcc-4.8.1";
my $i_incl =catfile($compilerRoot,"\\include\\GL;").catfile($compilerRoot,"\\include\\ddk");
$ENV{'PATH'} = "d:\\gnu\\gcc-4.8.1\\bin;". $ENV{'PATH'};
my $command = "g++ -v -c C:\\Users\\asdf\\Documents\\hello.cpp -fno-show-column -o hello -I$i_incl";
system($command);
有:
hello.cpp
答案 0 :(得分:0)
我无法复制环境,做得太多,请你试试这个吗?
my @i_incl = split /;/, =catfile($compilerRoot,"\\include\\GL;").catfile($compilerRoot,"\\include\\ddk");
$ENV{'PATH'} = "d:\\gnu\\gcc-4.8.1\\bin;". $ENV{'PATH'};
foreach $i_incl(@i_incl) {
my $command = "g++ -v -c C:\\Users\\asdf\\Documents\\hello.cpp -fno-show-column -o hello -I$i_incl";
system($command);
}