这次我有一个更复杂的问题。我已经写了一个简短的Perl程序,其中我的最终输出是一个数组。我想对输出的每个元素执行Perl脚本中带有.hpp文件扩展名的C脚本(我已经从UCSC Genome Browser下载了源代码)。这对我来说真的很难,因为我是一个编程新手,对C一无所知.我读了一些书,我认为最适合我的是使用qx调用。我试过了,当我运行Perl脚本时,它只是在文本编辑器中打开.hpp文件。我不确定这是因为我错误地分配了.hpp文件扩展名,以便用编辑器打开,还是我通常需要一个编译器来运行.hpp文件。
my $info = qx(primercheck.hpp);
print "primercheck.hpp is: $info\n";
2条答案
按热度按时间j1dl9f461#
.hpp
文件是一个头文件,通常只包含宏和声明,而不包含可执行代码。它用于指定.cpp
文件中代码的接口,不能独立编译。典型的C++程序由几个
.cpp
和.hpp
文件组成,这些文件必须组合编译,然后相互链接并与库文件链接以创建可执行映像。所以,是的,你确实需要一个编译器,还有更多!
ctehm74n2#
假设您使用的是 *nix,您可以使用
gcc
工具首先在运行时编译源代码,通过来自perl脚本的system
调用,然后进行另一个系统调用来运行生成的可执行文件。此外,对于Borodin的回答,即使扩展名为
hpp
的文件有可执行代码,它也可能被编译但不会执行。一种解决方法是制作源代码的临时副本,并给予它一个cpp
扩展名,然后编译它,以获得可以从Perl脚本调用的可执行代码。然而,这要求您的hpp
文件实际上具有可执行代码。希望这对你有帮助。