我一直在努力编译我的项目而且我遇到了undefined reference错误.例如.:
installertest.cpp:(.text+0x9d1): undefined reference to `XmlRpcValue::makeArray()'
...
installertest.cpp:(.text+0xede): undefined reference to `dbcancel'
installertest.cpp:(.text+0xefd): undefined reference to `dbfcmd'
installertest.cpp:(.text+0xf0f): undefined reference to `dbsqlexec'
installertest.cpp:(.text+0xf2d): undefined reference to `SHA1_Init'
...
Run Code Online (Sandbox Code Playgroud)
我的命令行是:
g++ -o installertest \
-lsybdb \
-lxmlrpc \
-lxmlrpc_cpp \
-lxmlrpc_xmlparse \
-lxmlrpc_xmltok \
-lxmlrpc_util \
-lxmlrpc++ \
-lxmlrpc_server_cgi \
-lssl \
-std=c++0x \
ContractData.o installertest.o
Run Code Online (Sandbox Code Playgroud)
objdump -T显示符号位于.so文件中.例如.:
libsybdb.so:
...
0000000000011c30 g DF .text 0000000000000083 Base dbcancel
...
/usr/lib/libxmlrpc_cpp.so:
...
0000000000002e78 g DF .text 0000000000000092 Base _ZN11XmlRpcValue9makeArrayEv …Run Code Online (Sandbox Code Playgroud) 在我的例子中,我有一个使用代码源gcc定位arm cortex-m4构建的库.我试图将该库链接到使用IAR编译器编译的项目.
是否可以这样做或者是否必须使用新工具重建库?哪些因素会影响这个?