如何让IDE在include头文件后,找到相应的源文件(cpp)?

时间:2021-07-28 05:44:21
比如我写了个类,生成一个h文件和一个cpp文件,一般我将他们拷贝到VC的安装目录下,使用的时候,include头文件,这样编译可以通过,但连接的时候就出错了,因为找到实现文件(即cpp文件),没办法,只能将cpp文件添加到工程中。

我想问的是,能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)?,这样达到的效果就像是使用MFC自带的类一样(使用MFC类时,我们从来都是include头文件即可,而不关头源代码在哪个cpp文件中)!

5 个解决方案

#1


使用MFC类时,你并不需要重新编译源文件,而是连接到MFC运行时库。你不把源文件添加到工程,可以把源文件编译成库文件,然后在工程中添加这个库。是不是觉得一样?其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?

当然有一种变通,就是编译成库后,可以在头文件中使用#import预编译指令导入库。

#2


up

#3


有些MFC代码不是以库的方式提供的,而是以c++源代码的方法提供的,我认为,比如在SRC目录下就有好多C++代码,不知道我的认为对不对?

其次,你上面说的:“其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?”,这我懂,所以我的问法是:“能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)”,我也不是很确定有没有才来问的。


另外还想问一下Mackz(在相互),如何编译成库呢?比如我从CListCtrl类派生了一个类,得到一个h文件和cpp文件,如何生成lib文件呢?

#4


哦,我明白了,这个lib文件就是生成dll时生成的那个lib,但我想不想生成dll啊,能不能生成一个obj文件,然后连接时调用呢?

记得我曾经试过生成obj文件,可是放到别的工程中就用不了了,同一个类,在不同的工程中,得到的obj文件好像不一样!

#5


作成静态库,然后放到别的工程中用

#1


使用MFC类时,你并不需要重新编译源文件,而是连接到MFC运行时库。你不把源文件添加到工程,可以把源文件编译成库文件,然后在工程中添加这个库。是不是觉得一样?其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?

当然有一种变通,就是编译成库后,可以在头文件中使用#import预编译指令导入库。

#2


up

#3


有些MFC代码不是以库的方式提供的,而是以c++源代码的方法提供的,我认为,比如在SRC目录下就有好多C++代码,不知道我的认为对不对?

其次,你上面说的:“其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?”,这我懂,所以我的问法是:“能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)”,我也不是很确定有没有才来问的。


另外还想问一下Mackz(在相互),如何编译成库呢?比如我从CListCtrl类派生了一个类,得到一个h文件和cpp文件,如何生成lib文件呢?

#4


哦,我明白了,这个lib文件就是生成dll时生成的那个lib,但我想不想生成dll啊,能不能生成一个obj文件,然后连接时调用呢?

记得我曾经试过生成obj文件,可是放到别的工程中就用不了了,同一个类,在不同的工程中,得到的obj文件好像不一样!

#5


作成静态库,然后放到别的工程中用