以前的程序都是C语言开发的,现在需要链接一个标准C++写的一个程序,并且对方只提供C++编译好的.o文件,不提供C++的源代码。请问如何把这个.o文件链接到以前用C开发的程序当中呢? 是不是要修改makefile?如果是的话,请问怎么改?
谢谢大家!
5 个解决方案
#1
没明白你的意思,是C++链接C的.o库,还是C链接C++的.o库?
#2
在机子上测试一下就知道要不要修改了.
#3
linux下的吧。程序不大的话重新链接下?
#4
把obj拷入debug文件夹,然后在文件头部加入一句:
#pragma comment(lib,"debug\YourObjName.obj")
如果是C调用C++和函数,需要加上extern "C++"
如果是C++调用C的函数,需要加上extern "C"
#pragma comment(lib,"debug\YourObjName.obj")
如果是C调用C++和函数,需要加上extern "C++"
如果是C++调用C的函数,需要加上extern "C"
#5
修改下makefile文件就可以了
如果在Tornado中编译 可以在Build标签页众多project_lib宏中加入即可
如果在Tornado中编译 可以在Build标签页众多project_lib宏中加入即可
#1
没明白你的意思,是C++链接C的.o库,还是C链接C++的.o库?
#2
在机子上测试一下就知道要不要修改了.
#3
linux下的吧。程序不大的话重新链接下?
#4
把obj拷入debug文件夹,然后在文件头部加入一句:
#pragma comment(lib,"debug\YourObjName.obj")
如果是C调用C++和函数,需要加上extern "C++"
如果是C++调用C的函数,需要加上extern "C"
#pragma comment(lib,"debug\YourObjName.obj")
如果是C调用C++和函数,需要加上extern "C++"
如果是C++调用C的函数,需要加上extern "C"
#5
修改下makefile文件就可以了
如果在Tornado中编译 可以在Build标签页众多project_lib宏中加入即可
如果在Tornado中编译 可以在Build标签页众多project_lib宏中加入即可