当前位置: 技术问答>linux和unix
未定义错误...请指点
来源: 互联网 发布时间:2016-03-11
本文导语: 系统: linux 编译工具: g++ 错误说明: 我自己写了一个类.这个类使用了其他公司 SDK 中的函数. 在编译的时候(g++ -c xxx.cpp ...这时候),没有报错误. 在连接的时候(g++ -o xxx main.o xxx.o ...这时候),出现未...
系统:
linux
编译工具:
g++
错误说明:
我自己写了一个类.这个类使用了其他公司 SDK 中的函数.
在编译的时候(g++ -c xxx.cpp ...这时候),没有报错误.
在连接的时候(g++ -o xxx main.o xxx.o ...这时候),出现未定义错:
undefined reference to 'func_xx()'
func_xx()函数是第3方公司 SDK 中的函数.
这里不理解编译时无错误,连接时错误是如何产生的?
ps:
我现在做demo程序.所以只有个 main.c 和自己写的类.
在linux下工作不久,提问中的必要条件也许不足,请指出.3ks
linux
编译工具:
g++
错误说明:
我自己写了一个类.这个类使用了其他公司 SDK 中的函数.
在编译的时候(g++ -c xxx.cpp ...这时候),没有报错误.
在连接的时候(g++ -o xxx main.o xxx.o ...这时候),出现未定义错:
undefined reference to 'func_xx()'
func_xx()函数是第3方公司 SDK 中的函数.
这里不理解编译时无错误,连接时错误是如何产生的?
ps:
我现在做demo程序.所以只有个 main.c 和自己写的类.
在linux下工作不久,提问中的必要条件也许不足,请指出.3ks
|
如果你用的sdk是用c写的、c编译器编译的话,在头文件中要加上
extern "C"
{
你声明的函数明。
}
不然也会出现你遇到的情况
extern "C"
{
你声明的函数明。
}
不然也会出现你遇到的情况
|
你自己生成的.a文件放在什么位置了,把它放到/usr/lib下试试,或在编译时:
g++ g++ -o xxx main.o -L/path -lxxx //-l是.a的名
g++ g++ -o xxx main.o -L/path -lxxx //-l是.a的名
|
不会吧,编译只是转换成2进制码,链接才是与外部的数据等等联系呀。
在编译时(g++ -o xxx.o -c xxx.cpp ...这时候),也不能通过,报什么错呀?
在编译时(g++ -o xxx.o -c xxx.cpp ...这时候),也不能通过,报什么错呀?