在64位机器上使用i386 boost

时间:2014-07-29 03:05:08

标签: c++ macos boost 32bit-64bit

我希望这不是重复,但是一堆搜索还没有能够帮助我。

首先,我正在运行Mac OS X 10.9.4(Mavericks),不幸的是只有64位。我的任务是将一些32位代码移植到这台计算机上(用于OS X 10.6.8),但这真的很麻烦。 32位代码写得很差(主要集中在32位内存分配),我没有时间去修复所有错误(更不用说找到它们了)。不,我没有写这个代码,几年前我的小组中的其他人(并且他已经离开了)。必要的是增强库。

作为一个解决方案的想法,我想我可能能够以32位模式编译程序。如果重要的话,我使用Code :: Blocks作为IDE,以及gcc 4.4。

我已使用

将boost库(v 1.44)安装为32位
sudo ./bjam cxxflags="-m32" 

安装时。我正在使用的小测试程序来自boost网站:

#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
    std::string line;
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

    while (std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        if (boost::regex_match(line, matches, pat))
            std::cout << matches[2] << std::endl;
    }
}

当我尝试编译时(使用-m32标志),会弹出一个警告,说明

中的库
/usr/local/boost_1_44_0/stage/lib/libboost_regex.a

是为归档而构建的,而不是链接的体系结构(x86_64)。 main.o文件的类似警告。

所以我想知道,如何在64位计算机上编译此代码?

由于

0 个答案:

没有答案