0

I have c++ builder community version 10.4. Boost multiprecision works fine for Win32 compiles, but does not compile for Win64, giving link errors. c++builder is using version 1.70 of boost.

[ilink64 Error] Error: Unresolved external '__udivti3' referenced from C:\USERS\DAVID\LOCAL_DEVEL\BOOST_TEST\WIN64\DEBUG\FILE1.O [ilink64 Error] Error: Unresolved external '__umodti3' referenced from C:\USERS\DAVID\LOCAL_DEVEL\BOOST_TEST\WIN64\DEBUG\FILE1.O

Has anyone seen this, and has a solution? Example with some standard #includes deleted.

//---------------------------------------------------------------------------
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/cpp_bin_float.hpp>
#include <boost/rational.hpp>

using namespace std;
using namespace boost::multiprecision;
using boost::rational;



typedef boost::rational<cpp_int> t_prob;
int main (int argc, char *argv [])
{   t_prob a,b,c;

        a = 4;
//      a /= 6;
        b = 13;
//      b /= 7;
        c = a * b;
    std::cout << c << "\n";

}
david
  • 1
  • 1
  • Looks like the platform is not correctly detected. I can't find the supported platforms/compiler for Boost Multiprecision, but maybe you can ask/report on their repo https://github.com/boostorg/multiprecision – sehe Sep 10 '22 at 21:08
  • Since Peter Dimov [has confirmed](https://cpplang.slack.com/archives/C27KZLB0X/p1662844445666809) it looks like it thinks that __int128_t is available when it is not, in fact, available. That means that the github issues are the best place to ask for assistance. (Be sure to mention whether you use MP standalone or not) – sehe Sep 12 '22 at 16:40

0 Answers0