标题:小议如何调用中间文件(*.obj)中的函数
只看楼主
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
结帖率:99.76%
已结贴  问题点数:100 回复次数:10 
小议如何调用中间文件(*.obj)中的函数
完整操作步骤如下:
全部操作环境 vs2010+winxp

1、需要增加环境变量  (如何增加环境变量就不叙述了)

F:\Program Files\Microsoft Visual Studio 10.0\VC\bin;
F:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;
F:\Program Files\Microsoft Visual Studio 10.0\VC\include;
F:\Program Files\Microsoft Visual Studio 10.0\VC\lib;

本以为增加这些就可以编译了  可是还是无法编译  这时百度到 需要运行vsvars32.bat这个文件(这个文件在vs的tool目录下) 我还没深入研究这个
bat文件 应该是环境变量设置的不够(猜测)  运行vsvars32.bat初始化vs的运行环境之后 一切都ok了,至此准备工作ok。下面进入实验阶段。

2、建立2个文件 就是纯文本文件了 你甚至可以使用记事本来完成,我的例子

w13.cpp内容如下
程序代码:
#include <stdio.h>

void wp()
{
    printf("hello world!\n");
}

w13main.cpp 内容如下
程序代码:
void wp();
void main()
{
    wp();
}


3、编译
使用cl.exe 生成w13.obj  w13main.obj
4、链接
使用link.exe 生成 w.exe
5、测试运行效果
能够在那个黑乎乎的窗口中 看到我们久违的 hello world!
搜索更多相关主题的帖子: Microsoft include 百度 如何 
2015-08-31 15:04
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
得分:25 
帮顶

一片落叶掉进了回忆的流年。
2015-08-31 17:38
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
多么可爱的错误啊
程序代码:
D:\c_source\w13>cl /c w13.cpp
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 16.00.30319.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

w13.cpp
w13.cpp(4) : fatal error C1034: stdio.h: 不包括路径集


解决办法也不说了  没什么人关注这个话题呢

DO IT YOURSELF !
2015-09-01 09:38
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
好生僻的研究。其实你要说碰到什么问题,或许有人有兴趣做下,反正我愚钝,不知道你想说什么。

能编个毛线衣吗?
2015-09-01 09:42
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用wmf2014在2015-9-1 09:42:41的发言:

好生僻的研究。其实你要说碰到什么问题,或许有人有兴趣做下,反正我愚钝,不知道你想说什么。



我没有想问什么的意思  只是给大家演示一下  如何在一个cmain 中调用另一个obj里的函数(类似dll lib 啥的 但是性质不是太一样)

DO IT YOURSELF !
2015-09-01 09:44
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:25 
dll是运行库,程序每次运行时都需要它存在的,lib是函数库,链接时需要,以后程序运行就不需要了。我是这样理解的。

能编个毛线衣吗?
2015-09-01 09:56
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
至于obj 就更低级了  需要使用者自己去单独链接它  (他和dll一样 都需要制作者提供函数的接口方式或者调用例程)
而lib则是要求制作者提供头文件 配套使用

DO IT YOURSELF !
2015-09-01 10:00
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
得分:25 
这不是正常的编译,链接嘛…


莫问前尘有愧,但求今生无悔
2015-09-01 10:37
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 8楼 pycansi
这个论断不能被认同

编译是标准编译
链接是标准链接

DO IT YOURSELF !
2015-09-01 10:44
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
得分:0 
回复 9楼 wp231957
严谨


莫问前尘有愧,但求今生无悔
2015-09-01 11:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456912-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062247 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved