我正在尝试构建一个使用Cygwin的boost库的应用程序,然后在Linux盒子上部署它。我下载了最新版本的boost, 1.46.1,然后按照这里的说明http://www.boost.org/doc/libs/1_46_1/more/getting_started/unix-variants.html。
我完成了bootstrap和bjam过程。当我检查stage/lib文件夹时,有。dll,。dll。A、. A文件创建。这些是需要的包含库吗?我期待有。so文件,因为它将在linux上运行,但不幸的是。dll的创建。
顺便说一句,我在我的项目中使用Eclipse IDE。
这是我的测试项目,
#include <boost/asio.hpp>
#include <boost/bind.hpp>
int main(void)
{
return 0;
}
编译后,提示链接错误:
Invoking: GCC C++ Linker
/opt/Mx800SDK/vfitc/cross/bin/arm-linux-g++ -L../lib -o'boostTest' ./boostTest.o ./include/boost/fusion/include/adapt_adt_named.o -lpthread -lboost_system -lstdc++
./boostTest.o(.text+0x498): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `boost::system::system_category()'
./boostTest.o(.text+0x4b0): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `boost::system::system_category()'
./boostTest.o(.text+0x4c8): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `boost::system::generic_category()'
./boostTest.o(.text+0x4e0): In function `__static_initialization_and_destruction_0(int, int)':
: undefined reference to `boost::system::generic_category()'
./boostTest.o(.gnu.linkonce.t._ZN5boost4asio6detail20posix_tss_ptr_createERj+0x60): In function `boost::asio::detail::posix_tss_ptr_create(unsigned int&)':
: undefined reference to `boost::system::system_category()'
任何关于如何解决这个问题的帮助将是非常感激的。
谢谢
您正在尝试跨linux-arm构建,您不应该遵循cygwin指令。