我试图用gsl在c ++中编译一个简单的程序。在我们的大学服务器上,我们安装了GSL。主要问题是,我正在努力:
g++ atest.cpp -c -lgsl -lgslcblas -c lm
之后,我打字:
./a.out
我得到了:
-bash: ./a.out : No such file or directory
问题是什么?感谢。
答案 0 :(得分:8)
你只是编译而不是链接。来自man gcc
:
-c Compile or assemble the source files, but do not link. The linking
stage simply is not done. The ultimate output is in the form of an
object file for each source file.
By default, the object file name for a source file is made by
replacing the suffix .c, .i, .s, etc., with .o.
Unrecognized input files, not requiring compilation or assembly,
are ignored.
答案 1 :(得分:2)
所以-c
选项(命令行参数)意味着编译
g++ atest.cpp -c -lgsl -lgslcblas -lm
g++ atest.o
这将生成a.out
文件,或者您可以使用简写
g++ atest.cpp -lgsl -lgslcblas -lm
将编译和链接代码。
另外,在尝试运行之前,您可以使用ls
检查包含a.out
的目录。