社区
VC.NET
帖子详情
怎样用CL来编译CPP文件?
wangleidream
2003-10-20 06:21:14
我新建一个CPP文件,不是用console形式,用CL来编译,却告诉我无CL命令!为什么?应该怎么做?
...全文
58
回复
打赏
收藏
怎样用CL来编译CPP文件?
我新建一个CPP文件,不是用console形式,用CL来编译,却告诉我无CL命令!为什么?应该怎么做?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
VC++ 6.0 控制台
编译
批处理
文件
可以方便地使用此
文件
对VC++ 6.0的程序进行
编译
,在使用时将VS
CL
.BAT
文件
拷贝到%WINDIR%(一般为C:Windows)下或%WINDIR%.SYSTEM32目录下,然后您就可以在控制视窗下的控制台下进行.
cpp
或.c
文件
的
编译
了
MingW VC 之.a .lib .dll .def 关系
MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记 一份粗糙的研究记录,有待补完和整理。 MinGW: c -> o gcc -c a.c c -> exe gcc a.c libs.o -o a.exe (从主程序a.c,附加libs,生成a.exe) o -> exe gcc a.o b.o ... -o main.exe c -> dll,def,a gcc a.c -shared -o a.dll -Wl,--output-def,a.def,--out-implib,liba.a a -> dll a2dll liba.a dll -> a: dlltool --dllname a.dll --def a.def --output-lib liba.a (需要def
文件
) a -> def: dumpbin /exports lib.a > lib.def (在windows上调用,def需要修改) dll -> def : pexports a.dll -o > a.def (这里的-o是指给函数标序号) lib -> def : reimp -d a.lib lib -> a: (for __cde
cl
functions in most case) reimp a.lib; (for __stdcall functions) MSVC: c -> lib
cl
/LD a.c (注意已经定义了export列表) c -> dll
cl
/LD a.c c -> obj
cl
/c a.c c -> exe
cl
a.c /out:a.exe dll ->lib lib /machine:ix86 /def:a.def /out:a.lib (需要def
文件
) obj ->lib lib a.obj b.obj... /out:mylib.lib dll ->def DUMPBIN a.dll /EXPORTS /OUT:a.def (生成的def需要做修正) lib ->def reimp -d a.lib (这个要在MSYS+MinGW下用) 关于这些工具的适用范围可以很容易的理解和记忆。 dll和exe都是PE
文件
,所以可以使用pexports. lib和a是静态库
文件
,都是归档类型,不是PE格式。所以不能使用pexports. dll可以使用dlltool. lib可以使用lib, 和reimp(lib->a工具) 所有的bin
文件
,包括dll,exe,lib,a都可以使用dumpbin. 参考: http://hi.baidu.com/kaien_space/blog/item/5e77fafa2ba9ff16a8d3110a.html Mingw官网文档: http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs http://oldwiki.mingw.org/index.php/CreateImportLibraries http://www.mingw.org/wiki/FAQ http://hi.baidu.com/opaquefog/blog/item/9b21b6deb324e25dccbf1ab7.html http://qzone.qq.com/blog/8330936-1238659272 http://hi.baidu.com/jzinfo/blog/item/b0aa1d308de99f9da8018e00.html 本篇测试用代码: 1. main.
cpp
#in
cl
ude #in
cl
ude #in
cl
ude "mylib.h" using namespace std; int main() { char str[]="Hello world!"; printhello(str); return 0; } 2. mylib.
cpp
#in
cl
ude #in
cl
ude #in
cl
ude "mylib.h" using namespace std; void EXPORT printhello(char *str) { cout << str << endl; } 3. mylib.h #define EXPORT __de
cl
spec(
qmake-unity:QMake-unity是一个独立的工具,可以加快基于qmake的C ++项目的
编译
QMake-Unity QMake-unity是一个独立的工具,可以加快基于qmake的C ++项目的
编译
。 一般概念 Unity构建,巨型构建和单个
编译
单元(SCU)是一种加速C ++
编译
过程的技术。 它包括在
编译
之前对多个
CPP
文件
进行分组/合并。 QMake-unity使
文件
分组过程自动化,并且可以将
编译
速度提高 。 它可以在两个层次上起作用: 在调用
CL
之前对
CPP
文件
进行分组 调用MOC之前的组头
文件
moc对象有两个优化级别: 在每个QObject类(标头)上调用MOC,然后对由moc生成的
cpp
文件
进行分组,以使用
CL
一次生成它们。 ( MOC_LVL_1 ) 将每个Q
ubuntu 下
编译
C++代码出现的问题解决
同样的代码, 同样的makefile
文件
1)在mac 下顺利
编译
; 2)在新的ubuntu 下,
编译
失败; 报错信息: string.h 中各种 函数找不到; makefile: 代码如下: //[这是后来添加的
CL
_HEADER := -I/usr/in
cl
ude/
CL
_LIBS := -L/usr/lib/ //后来添加的]
cl
cp: main.o
cl
_string_utils.o
cl
_log.o g++ ${
CL
_HEADER} ${
CL
_LIBS} -o
cl
cp main.o
cl
_string_utils.o
cl
_log.o main.o: main.
cpp
c
VC++动态链接库(DLL)编程深入浅出,DLL编写教程 两篇
最简单的dll并不比c的helloworld难,只要一个DllMain函数即可,包含objbase.h头
文件
(支持COM技术的一个头
文件
)。若你觉得这个头
文件
名字难记,那么用windows.H也可以。源代码如下:dll_nolib.
cpp
#in
cl
ude #in
cl
ude BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, void* lpReserved) { HANDLE g_hModule; switch(dwReason) { case DLL_PROCESS_ATTACH: cout<<"Dll is attached!"<
编译dll需要以下两条命令:
cl
/c dll_nolib.
cpp
这条命令会将
cpp
编译
为obj
文件
,若不使用/c参数则
cl
还会试图继续将obj链接为exe,但是这里是一个dll,没有main函数,因此会报错。不要紧,继续使用链接命令。 Link /dll dll_nolib.obj 这条命令会生成dll_nolib.dll。 注意,因为
编译
命令比较简单,所以本文不讨论nmake,有兴趣的可以使用nmake,或者写个bat批处理来
编译
链接dll。 加载DLL(显式调用)
VC.NET
7,540
社区成员
27,673
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章