UPDATE:找到一种方法让它编译,见下文。使用cygwin编译boost程序的问题
你好,我有问题在cygwin下编译boost程序。我已经从cygwin项目的setup.exe安装了默认的boost和g ++包。
在我的Linux系统,我可以通过编译程序reg.cpp如下:
g++ -I/usr/include/boost -lboost_regex -o reg reg.cpp
在Cygwin我必须编辑这个只是有点:
g++ -I/usr/include/boost-1_33_1 -lboost_regex-gcc-mt -o reg reg.cpp
的问题是, cygwin版本会导致链接器拉出一百万个未定义的引用错误。尝试使用boost测试框架库也会发生同样的事情。
链接器找到boost_regex-gcc-mt,但它看起来不匹配include文件。这是第一个链接错误:
undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'
如何编译
我找到了解决办法here要编译,我做了以下内容:
g++ -I/usr/include/boost-1_33_1 reg.cpp -o reg -lboost_regex-gcc-mt
据后,它有什么与链接器顺序有关。任何人都知道为什么这在cygwin中很重要,但不是现代Linux?