BCB include第三方源文件找不到obj的问题。
1、在Include path和Library path加入了*h,*cpp文件所在的目录。假设目录下有"MyXXX.h、MyXXX.cpp"
2、在FormMain.h里#include "MyXXX.h",可以编译通过,也就是说BCB是可以找到包含文件的。
3、但只要一声明MyXXX.h里的类,如TMyClass test;就会出编译错误,错误提示为[ILINK32 Error] Error: Unresolved external 'TMyApp::TMyApp()' referenced from D:\WORK\MyApp\DEBUG\FORMMAIN.OBJ,同时查DEBUG目录,并没有生成MyXXX.obj,也就是说BCB到FormMain.obj里去找了,明显是不对的。
如果不用Include path、Library path方式,直接用“add file to project”把相关的文件加入到工程,就可以正确编译。
我一直是用后面的方式,现在想换成前一种方式,为什么就没法编译通过呢?第三方的vcl都是用前一种方式啊。问题在哪里?
[解决办法]
MyXXX.obj生产到别的目录里去了。
[解决办法]
编译器找不到实现的部分,所以报错.
可以考虑做成静态lib
[解决办法]
EXE文件的話,指定鏈接:
#pragma link "XXXX.OBJ"
#pragma link "XXXX.LIB"
BPL包的話,將XXXX.bpi包放入工程的需求包列表中。