如何运行visual c++下多个cpp文件,就是在同一个项目下建立了多个.cpp源文件,但是无法生成,运行第二个
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何运行visual c++下多个cpp文件,就是在同一个项目下建立了多个.cpp源文件,但是无法生成,运行第二个相关的知识,希望对你有一定的参考价值。
请问如何解决
一个vs项目只能有一个cpp文件包含 main方法,另一个不能有如果建立多个cpp,要联合这些cpp使用,比如有两个cpp文件1.cpp和2.cpp,在1.cpp中写了一个main方法,2.cpp就不能写这个main方法了,只能在1.cpp中写上#include "2.cpp",然后在2.cpp中写个类,把这个类写在1.cpp里面实例化而已
1.cpp
#include "iostream"
#include "2.cpp" //这里写包含第二页
using namespace std;
int main()
class student s; //直接使用2.cpp的类
s.say();
--------------------------------------------------------
2.cpp
#include "iostream"
using namespace std;
class student //写一个类,就可以在1.cpp里面使用了
public : //注意使用public
int a=99;
int say()
cout << a<<endl;
return 0;
; 参考技术A 一个项目中只能有一个main函数,你其他的.cpp文件中,不能包含main函数,然后你用main函数所在的.cpp用包含头文件的形式包含其他.cpp文件就可以了本回答被提问者采纳
visual C++ typedef struct 多重定义符号问题
【中文标题】visual C++ typedef struct 多重定义符号问题【英文标题】:visual C++ typdef struct multiple defined symbols problems 【发布时间】:2011-09-07 07:48:38 【问题描述】:在 Visual C++ 中,我遇到了“致命错误 LNK1169:找到一个或多个多重定义的符号”,下面的代码,如果我想在两个源中包含两个头文件以供其他函数使用,我该如何解决这个问题?
main.cpp
========
#include main.h
#include sub.h
sub.cpp
========
#include main.h
#include sub.h
sub.h
=========
typedef struct
char colour;
char name;
person;
person ssss = red, ali;
【问题讨论】:
【参考方案1】:你的问题是你在头文件中定义了一个变量:
person ssss = red, ali ;
一个在 main.cpp 中实例化,一个在 sub.cpp 中实例化。你最好写一个:
extern person ssss;
在头文件中,然后在其中一个源文件中定义一次变量。这将使两个源文件都知道它存在,并且两者都将引用同一个变量,假设这是您想要的。就像其他答案所建议的那样,我也肯定会建议使用 header guards,虽然您在此示例中并不特别需要它们,但这是一种很好的做法,从长远来看可以让您头疼。
【讨论】:
【参考方案2】:在两个源文件中都包含 typedef 应该不是问题。问题是 ssss 的声明通过 sub.h 出现在两个文件中。将其放入源文件之一并在标头中将其声明为外部以解决此问题。请注意,您有一个链接错误,而不是编译错误——这是因为在多个目标文件中找到了该符号。
【讨论】:
【参考方案3】:你应该在你的头文件中添加包含保护,以防止同一个头文件被多次包含。
#ifndef SUB_H
#define SUB_H
//end of file
#endif
另外一件事,你为什么要在你的 sub.cpp 中包含 main.h?这似乎是错误的。
【讨论】:
【参考方案4】:在sub.h中,在文件顶部插入以下内容;
#pragma once
【讨论】:
【参考方案5】:person ssss = red, ali;
ssss
在sub.cpp
和main.cpp
中被实例化一次,因为sub.h
包含在任何一个文件中。实例化通常在源文件中而不是头文件中。现在,当您访问对象ssss
成员变量时,链接器无法访问哪个对象,因为它们都共享相同的范围。
解决方案是拥有一个全局实例(如果这是您想要的),并且可以通过外部链接跨不同文件进行访问。
main.cpp
========
#include main.h // What is main.h required for ?
#include sub.h
extern person ssss;
sub.cpp
========
#include main.h // ?!?!
#include sub.h
person ssss = red, ali;
sub.h
=========
typedef struct
char colour;
char name;
person;
【讨论】:
以上是关于如何运行visual c++下多个cpp文件,就是在同一个项目下建立了多个.cpp源文件,但是无法生成,运行第二个的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio C++ - 运行单独的 .cpp 文件?
用visual c++ 2008 打开一个.cpp文件怎么运行它?