当前位置: 技术问答>linux和unix
[搞了一个星期了,真的快崩溃了~!!]静态编译opencv程序(还是人脸检测程序)
来源: 互联网 发布时间:2016-06-28
本文导语: 我尝试了所有方法,但还是有以下类似的错误,大概有五千多行吧。 /usr/local/lib/libgtk-x11-2.0.a(gtkcontainer.o): In function `chain_widget_destroyed': /home/hua/gtk+-2.8.20/gtk/gtkcontainer.c:2068: undefined reference to `g_object_get_data' 以下是...
我尝试了所有方法,但还是有以下类似的错误,大概有五千多行吧。
/usr/local/lib/libgtk-x11-2.0.a(gtkcontainer.o): In function `chain_widget_destroyed':
/home/hua/gtk+-2.8.20/gtk/gtkcontainer.c:2068: undefined reference to `g_object_get_data'
以下是我尝试过的解决方案:
1.把所有的库写两遍,比如说/usr/local/lib/libhighgui.a ... /usr/lib/libpthread.a /usr/local/lib/libhighgui.a ... /usr/lib/libpthread.a
2.编译及链接时将gcc改成g++,将.c改.cpp,以及组合尝试。
3.将所有可能用到的库及可能用到的include都指定了一遍。
4. 在/etc/profile中,加入C_INCLUDE_PATH(gcc头文件路径)、 LIBRARY_PATH(静态库路径)、CPLUS_INCLUDE_PATH(g++头文件路径)变量,将我可能用的路径都加入其中。
结果,错误都是一样的。
我查了下,“g_object_get_data”在/usr/local/include/glib-2.0/gobject/gobject.h里面,按理说,它所在库文件应该在/usr/local/lib/libgobject-2.0.a中,但奇怪的是:
# objdump -S libgobject-2.0.so | grep g_object_get_data
g_object_get_data (GObject *object,
* carray = g_object_get_data (object, "GObject-closure-array");
0000cb20 :
cb42: 74 0b je cb4f
cb48: 74 05 je cb4f
cb4d: 74 14 je cb63
cb61: 74 21 je cb84
cb65: 74 5c je cbc3
cb73: 75 3b jne cbb0
cba8: eb cb jmp cb75
cbc1: eb b2 jmp cb75
cbc9: eb bf jmp cb8a
# objdump -S libgobject-2.0.a | grep g_object_get_data
为什么libgobject-2.0.so 有输出,而libgobject-2.0.a没有输出呀,难道g_object_get_data不在libgobject-2.0.a 中,只在libgobject-2.0.so 中吗?
这可如何事好?有人呀,帮帮我吧。
/usr/local/lib/libgtk-x11-2.0.a(gtkcontainer.o): In function `chain_widget_destroyed':
/home/hua/gtk+-2.8.20/gtk/gtkcontainer.c:2068: undefined reference to `g_object_get_data'
以下是我尝试过的解决方案:
1.把所有的库写两遍,比如说/usr/local/lib/libhighgui.a ... /usr/lib/libpthread.a /usr/local/lib/libhighgui.a ... /usr/lib/libpthread.a
2.编译及链接时将gcc改成g++,将.c改.cpp,以及组合尝试。
3.将所有可能用到的库及可能用到的include都指定了一遍。
4. 在/etc/profile中,加入C_INCLUDE_PATH(gcc头文件路径)、 LIBRARY_PATH(静态库路径)、CPLUS_INCLUDE_PATH(g++头文件路径)变量,将我可能用的路径都加入其中。
结果,错误都是一样的。
我查了下,“g_object_get_data”在/usr/local/include/glib-2.0/gobject/gobject.h里面,按理说,它所在库文件应该在/usr/local/lib/libgobject-2.0.a中,但奇怪的是:
# objdump -S libgobject-2.0.so | grep g_object_get_data
g_object_get_data (GObject *object,
* carray = g_object_get_data (object, "GObject-closure-array");
0000cb20 :
cb42: 74 0b je cb4f
cb48: 74 05 je cb4f
cb4d: 74 14 je cb63
cb61: 74 21 je cb84
cb65: 74 5c je cbc3
cb73: 75 3b jne cbb0
cba8: eb cb jmp cb75
cbc1: eb b2 jmp cb75
cbc9: eb bf jmp cb8a
# objdump -S libgobject-2.0.a | grep g_object_get_data
为什么libgobject-2.0.so 有输出,而libgobject-2.0.a没有输出呀,难道g_object_get_data不在libgobject-2.0.a 中,只在libgobject-2.0.so 中吗?
这可如何事好?有人呀,帮帮我吧。
|
实在不行,如果库里面你用到的函数耦合性不大的话,直接拿出来用吧