如何建立一个项目(比如zeromq)的静态库,并将其链接到我的项目(How to build a p

2019-09-16 16:30发布

我想用zeroMQ在我的项目,我运行如下的配置来构建libaray到我的主文件夹

./configure --enable-static --disable-shared --prefix=/home/xx/out

然后我联系我的项目通过

gcc -o myproject x.c y.c /home/xx/out/libzmq.a

但仍有大量的链接错误的象下面这样:

../zmq/lib/libzmq.a(libzmq_la-ip.o): In function zmq::resolve_ip_interface(sockaddr_storage*, unsigned int*, char const*)':
/home/sureone/share/zeromq-2.2.0/src/ip.cpp:221: undefined reference to std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
/home/sureone/share/zeromq-2.2.0/src/ip.cpp:222: undefined reference to std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
../zmq/lib/libzmq.a(libzmq_la-ip.o): In function zmq::resolve_ip_hostname(sockaddr_storage*, unsigned int*, char const*)':
/home/sureone/share/zeromq-2.2.0/src/ip.cpp:314: undefined reference to std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, uns

...........

Answer 1:

GCC -o MyProject的XC YC /home/xx/out/libzmq.a

由于ZeroMQ是(显然)使用C ++,您需要使用适当的编译器驱动程序( g++在这种情况下),以将其链接。

尝试这个:

 gcc -c x.c y.c
 g++ -o myproject x.o y.o /home/xx/out/libzmq.a


文章来源: How to build a project (say zeromq) as static library and linked it into my project