有谁能通俗易懂平易近人的解释一下run time的概念和run-time library?

47 views
Skip to first unread message

gracia G

unread,
Jan 23, 2012, 5:46:02 AM1/23/12
to 西电MSTC讨论组
RT.
其实一直以来都不怎么确定run time的意思,粗浅的理解是在运行时确定加载的内容,但是怎样实现这种机制,又有什么优势,以及用法如何?

Jimmy

unread,
Jan 23, 2012, 9:00:06 AM1/23/12
to mstc...@googlegroups.com
In computer sciencerun timerun-timeruntime, or execution time is the time during which a program is running (executing) 
run-time library 就是在程序运行的时候需要调用的库吧

在 2012年1月23日 下午6:46,gracia G <graci...@gmail.com>写道:
RT.
其实一直以来都不怎么确定run time的意思,粗浅的理解是在运行时确定加载的内容,但是怎样实现这种机制,又有什么优势,以及用法如何?

--
您收到此信息是由于您订阅了 Google 论坛“西电MSTC讨论组”论坛。
要在此论坛发帖,请发电子邮件到 mstc...@googlegroups.com
要退订此论坛,请发邮件至 mstcinxdu+...@googlegroups.com
更多选项,请通过
http://groups.google.com/group/mstcinxdu 访问该论坛
关注西电微软技术俱乐部最新动态:
人人:http://www.renren.com/mstcinxdu
微博:http://weibo.com/mstcinxdu
博客:http://hi.baidu.com/mstcinxdu
BBS:好网、睿思 微软俱乐部版



--
Best Regards
张 家珩

gracia G

unread,
Jan 24, 2012, 2:03:56 AM1/24/12
to mstc...@googlegroups.com
嗯,这个我理解,不过也正因为只理解到这种程度,不能区分run-time library和 dynamic linking library,感觉上运行时动态链接的性质是.lib和.dll都具有的,为什么要分出不同的文件来?

gracia G

unread,
Jan 24, 2012, 2:57:28 AM1/24/12
to mstc...@googlegroups.com
经过指点好像明白了一些。
.lib文件类似于.dll文件的头文件,准确的说,C/C++ run-time library负责DLL文件的startup sequence,在run-time library中包含的是DLL entry-point function,这个函数可以进一步调用相关函数来初始化库,在非局部变量上进行构造析构。
其实也就是这样的,C/C++语言标准除了定义了语法,还提供了一个标准库,如果按照传统的方法static linking的话,那每一个程序都会很大(因为标准库很大),如果同时运行10个程序,就有10个标准库的拷贝。为了改进就出现了动态链接库,事实上,大多数运行环境中,对于标准库的实现很少有静态链接,而用动态链接库形式实现。
说实话我对动态链接库还不是很清楚。
.lib文件可以认为是为了在执行时能正确跳到DLL而准备的一些必要信息。

以下链接为相关uesful的信息:
http://msdn.microsoft.com/en-us/library/988ye33t%28v=vs.100%29.aspx

Jimmy

unread,
Jan 24, 2012, 3:12:49 AM1/24/12
to mstc...@googlegroups.com

个人理解,动态链接库dll可以包含函数(对外提供api),图像,文字等资源,应该是实现更上层的功能,比如bookit for wp7的条码识别功能就是直接调用的dll,run-time library是程序运行必须依赖的框架,负责程序与更底层的沟通。

--
sent via my mobile phone

Justin Wong

unread,
Mar 1, 2012, 1:12:39 AM3/1/12
to mstc...@googlegroups.com
运行时确定,就是… 运行时确定-_-!!!

有些东西非运行时不能确定,例如程序依赖于某个外部输入或者其他资源情况

具体的实现么,一个 void* 指针,运行时再确定这个指针指向的到底是什么,C++的虚函数表就差不多是这么实现的

dynamic linked library(dll),先说明一下 static linked library,在编译的时候会将library的目标代码插入到自己生成的二进制文件里,而dynamic linked library则不会,编译器在编译的时候会生成一个 long call,操作系统在加载二进制文件的同时会加载 library 的地址

但是这里的 runtime 和 楼主想说的runtime 应该不是一个概念,我脑补一下好了,运行时库是编译器厂商制定的为了让语言正常运行制作的库,可以是动态链接也可以是静态链接,可以是标准库也可以是非标准库。例如在linux中常用 glibc 就是GNU的运行时库,最常见的一个文件是 /lib/libc.so.6 ,乃至于 /lib/libpthread.so.0 这样的 ,这些都是 「运行时库」,但很明显 libpthread 不是标准库。( 常用的 <math.h> 却不是在 libc.so.6 里实现的,而是在/lib/libm.so.6 这就是为什么在linux下编译带<math.h>的文件需要用 gcc -lm xx.c 。)

写一些程序的时候要用到第三方库,例如gtk,例如QT,他们和运行时库的原理基本是一样的,但是地位不太一样,他们放在 /usr/lib 里,而不是 /lib 呵呵

On Tuesday, January 24, 2012 4:12:49 PM UTC+8, xzjh wrote:

个人理解,动态链接库dll可以包含函数(对外提供api),图像,文字等资源,应该是实现更上层的功能,比如bookit for wp7的条码识别功能就是直接调用的dll,run-time library是程序运行必须依赖的框架,负责程序与更底层的沟通。

--
sent via my mobile phone

在 2012-1-24 下午3:57,"gracia G" <graci...@gmail.com>写道:
经过指点好像明白了一些。
.lib文件类似于.dll文件的头文件,准确的说,C/C++ run-time library负责DLL文件的startup sequence,在run-time library中包含的是DLL entry-point function,这个函数可以进一步调用相关函数来初始化库,在非局部变量上进行构造析构。
其实也就是这样的,C/C++语言标准除了定义了语法,还提供了一个标准库,如果按照传统的方法static linking的话,那每一个程序都会很大(因为标准库很大),如果同时运行10个程序,就有10个标准库的拷贝。为了改进就出现了动态链接库,事实上,大多数运行环境中,对于标准库的实现很少有静态链接,而用动态链接库形式实现。
说实话我对动态链接库还不是很清楚。
.lib文件可以认为是为了在执行时能正确跳到DLL而准备的一些必要信息。

以下链接为相关uesful的信息:
http://msdn.microsoft.com/en-us/library/988ye33t%28v=vs.100%29.aspx


在 2012年1月24日 下午3:03,gracia G <graci...@gmail.com>写道:
嗯,这个我理解,不过也正因为只理解到这种程度,不能区分run-time library和 dynamic linking library,感觉上运行时动态链接的性质是.lib和.dll都具有的,为什么要分出不同的文件来?

在 2012年1月23日 下午10:00,Jimmy <jsx...@gmail.com>写道:
In computer sciencerun timerun-timeruntime, or execution time is the time during which a program is running (executing) 
run-time library 就是在程序运行的时候需要调用的库吧

在 2012年1月23日 下午6:46,gracia G <graci...@gmail.com>写道:
RT.
其实一直以来都不怎么确定run time的意思,粗浅的理解是在运行时确定加载的内容,但是怎样实现这种机制,又有什么优势,以及用法如何?

--
您收到此信息是由于您订阅了 Google 论坛“西电MSTC讨论组”论坛。
要在此论坛发帖,请发电子邮件到 mstc...@googlegroups.com
要退订此论坛,请发邮件至 mstcinxdu+unsubscribe@googlegroups.com

更多选项,请通过
http://groups.google.com/group/mstcinxdu 访问该论坛
关注西电微软技术俱乐部最新动态:
人人:http://www.renren.com/mstcinxdu
微博:http://weibo.com/mstcinxdu
博客:http://hi.baidu.com/mstcinxdu
BBS:好网、睿思 微软俱乐部版



--
Best Regards
张 家珩

--
您收到此信息是由于您订阅了 Google 论坛“西电MSTC讨论组”论坛。
要在此论坛发帖,请发电子邮件到 mstc...@googlegroups.com
要退订此论坛,请发邮件至 mstcinxdu+unsubscribe@googlegroups.com

更多选项,请通过
http://groups.google.com/group/mstcinxdu 访问该论坛
关注西电微软技术俱乐部最新动态:
人人:http://www.renren.com/mstcinxdu
微博:http://weibo.com/mstcinxdu
博客:http://hi.baidu.com/mstcinxdu
BBS:好网、睿思 微软俱乐部版

--
您收到此信息是由于您订阅了 Google 论坛“西电MSTC讨论组”论坛。
要在此论坛发帖,请发电子邮件到 mstc...@googlegroups.com
要退订此论坛,请发邮件至 mstcinxdu+unsubscribe@googlegroups.com
Reply all
Reply to author
Forward
0 new messages