导航:首页 > 源码编译 > 编译osg的lib无法调用

编译osg的lib无法调用

发布时间:2023-06-04 19:05:01

‘壹’ C语言我用C-FREE5.0编译一个程序,调试没有警告和错误,却生成LIB文件 无法运行,报错为不可执行文件

int mian(void) // 这里错了,改为:
int main(void)

‘贰’ 如何在编译器里设置调用别人写好的lib和dll步骤

如何在编译器(vs2008)里设置调用别人写好的lib和dll如何在编译器(vs2008)里设置调用别人写好的lib和dll步骤:1.Tools->options->projectsandsolutions->VC++directories分别在包含文件,库文件填加了路径(这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程.)(若不设置,编译报错:无法打开***文件)2.Project->properties->c/c++->general->additionalincludedirectories添加包含文件Project->properties->linker->general->additionallibrarydirectories添加库文件Project->properties->linker->input->添加用到的lib(这一步也可以在代码中显示调用#pragmacomment(lib,"***.lib"))(若不添加,连接报错:无法解析的外部符号)3.将dll文件拷贝到工程debug文件下(如果不拷贝,编译链接不报错,运行报错:无法找到***.dll)切记第三条,让老子排查了一上午,当然最好把所有输出目录定位到一个文件下面。附:DLL与LIB文件的区别共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamiclinklibrary。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库staticlinklibrary。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数,并将库同代码一起放到可执行文件中。关于lib和dll的区别如下:(1)lib是编译时用到的,dll是运行时用到的。如果要完成源代码的编译,只需要lib;如果要使动态链接的程序运行起来,只需要dll。(2)如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容;如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而且失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。(3)动态链接的情况下,有两个文件:一个是LIB文件,一个是DLL文件。LIB包含被DLL导出的函数名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到DLL文件。在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中相应函数代码的地址,从而节省了内存资源。DLL和LIB文件必须随应用程序一起发行,否则应用程序会产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32API函数LoadLibrary、GetProcAddress装载。使用lib需注意两个文件:(1).h头文件,包含lib中说明输出的类或符号原型或数据结构。应用程序调用lib时,需要将该文件包含入应用程序的源文件中。(2).LIB文件,略。使用dll需注意三个文件:(1).h头文件,包含dll中说明输出的类或符号原型或数据结构的.h文件。应用程序调用dll时,需要将该文件包含入应用程序的源文件中。(2).LIB文件,是dll在编译、链接成功之后生成的文件,作用是当其他应用程序调用dll时,需要将该文件引入应用程序,否则产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32API函数LoadLibrary、GetProcAddress装载。(3).dll文件,真正的可执行文件,开发成功后的应用程序在发布时,只需要有.exe文件和.dll文件,并不需要.lib文件和.h头文件

‘叁’ 请问无法打开kernel32.lib怎么解决

1、链接lib库的时候出问题了。

#pragmacomment(lib,"kernel32.lib")

检查加这句了没有,没有加上。

2、在C:Program FilesMicrosoft SDKsWindowsv7.1ALib 看是不是有kernel32.lib,没有就下载一个。

3、点击工程属性——》VC++项目,

打开库目录后面的下拉菜单,

如果下面继承未选上,将其选上即可。

4、如果所有工程都这样,说明环境变量可能有错,确认一下是不是在VC安装完之后把它文件夹移动过位置。

5、或者到注册表

HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER的

下面看看。

阅读全文

与编译osg的lib无法调用相关的资料

热点内容
钓鱼黑坑下什么app 浏览:938
windows软件编译为linux程序 浏览:270
方舟编译支持应用 浏览:422
华为云服务器可以远程别的电脑吗 浏览:7
单片机百度百科 浏览:230
安卓回声效果发短信怎么弄 浏览:166
windows7文件夹属性没有位置 浏览:949
单片机632什么意思 浏览:119
奢侈品哪个app买最便宜 浏览:665
编译原理意思 浏览:329
哪里下载带有加密版志愿二维码 浏览:393
python读串口 浏览:171
Pdf修改文本 浏览:660
电力行业纵向加密技术原理 浏览:49
活塞压缩机基础 浏览:706
么解手机的压缩包 浏览:767
如何开通加密货币 浏览:148
北京修理服务器云主机 浏览:204
python程序设计主要思路 浏览:897
jar包通过如何在服务器运行 浏览:378