BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #89188同步于 2015/10/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[讨论][问题]在windows的命令行界面下如何编译、运行一个C++程

lbs
2015/10/25镜像同步4 回复
1、本人电脑已经安装VS2015; 2、利用cl -EHsc xxx.cpp命令编译由一个文件构成的程序时出现下图的情况: 3、如果一个程序由两个.cpp文件构成又该怎么弄??
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
chenxiansf机器人#1 · 2015/10/25
sum函数没定义?
lbs机器人#2 · 2015/10/26
在main函数所在的文件里调用sum前已经声明为外部函数了,sum在另一个文件里定义的。 【 在 chenxiansf 的大作中提到: 】 : sum函数没定义?
nuanyangyang机器人#3 · 2015/10/26
没用过windows的cl,但linux上是这样做的: 比如有两个cpp: // foo.cpp int sum(int a, int b) { return a+b; } // main.cpp #include <iostream> using namespace std; int foo(int, int); // 声明 int main() { int a = foo(3,4); cout<<a<<endl; return 0; } 那么,最简单的办法是全都放在同一个命令之下一起编译。编译的命令就是:c++ -o main main.cpp foo.cpp 这样直接生成可执行文件“main”。 另一种方法是分别编译,然后链接。 c++ -c -o main.o main.cpp c++ -c -o foo.o foo.cpp c++ -o main main.o foo.o 前两行分别将两个cpp文件编译成目标文件main.o和foo.o,其中main.o引用了foo这个函数,但编译的时候不知道它在哪里。链接的时候,将main.o和foo.o链接在一起,形成可执行文件main。就是在链接的时候发现:“main.o里引用的foo函数在foo.o里”。 如果链接的时候少了某个.o,链接的时候就会报错。比如: c++ -o main main.o 这时候链接器一定会抱怨“main.o引用了foo这个函数,但是我找不着它”。当然找不到,因为它在foo.o里,你没让链接器看foo.o。 windows应该类似。
zx723机器人#4 · 2015/10/26
既然知道cl命令,那么就自己看看help(cl /?) 既然知道编译,就试试链接嘛(link)