Closed donovanhide closed 1 year ago
@gregtatcam I know you build on arm64 - would you be able to have a look at this?
I can take a look. Though I went to @thejohnfreeman with any conan related questions so it might take a while for me to figure it out.
But @HowardHinnant had the same problem a few days ago. This is what worked for him:
conan remove boost -f conan install boost/1.77.0@ --build
And then change conan install
command from --build missing
to just --build
.
Hi,
Thanks for that. The suggested changes do make the conan install
process complete, but I'm now getting linker errors associated with boost in the cmake --build .
process:
[ 69%] Building CXX object CMakeFiles/rippled.dir/src/test/shamap/SHAMapSync_test.cpp.o
[ 69%] Building CXX object CMakeFiles/rippled.dir/src/test/shamap/SHAMap_test.cpp.o
[ 70%] Building CXX object CMakeFiles/rippled.dir/src/test/unit_test/multi_runner.cpp.o
[ 70%] Linking CXX executable rippled
Undefined symbols for architecture arm64:
"boost::json::value::value(boost::json::value&&)", referenced from:
ripple::test::Expected_test::run()::'lambda9'()::operator()() const in Expected_test.cpp.o
"boost::json::value::~value()", referenced from:
ripple::test::Expected_test::run() in Expected_test.cpp.o
ripple::test::Expected_test::run()::'lambda9'()::operator()() const in Expected_test.cpp.o
"boost::json::object::object(boost::json::object&&)", referenced from:
ripple::test::Expected_test::run()::'lambda9'()::operator()() const in Expected_test.cpp.o
"boost::json::object::object(std::initializer_list<std::__1::pair<boost::basic_string_view<char, std::__1::char_traits<char> >, boost::json::value_ref> >, unsigned long, boost::json::storage_ptr)", referenced from:
ripple::test::Expected_test::run()::'lambda9'()::operator()() const in Expected_test.cpp.o
"boost::json::object::~object()", referenced from:
ripple::test::Expected_test::run()::'lambda9'()::operator()() const in Expected_test.cpp.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [rippled] Error 1
make[1]: *** [CMakeFiles/rippled.dir/all] Error 2
make: *** [all] Error 2
Donch-ya know ?
@donovanhide I'm assuming you hit this error on a fresh build, but can you please confirm? Remove ~/.conan/data
, remove the build directory, start over, pass --build
with no argument to conan install
, and still miss a symbol in boost::json
?
Did you remember to set compiler.cppstd=20
on the command line for conan install
? It is missing from your profile.
I had previously removed the ~/.conan/data
directory, but not the actual build directory. Having done this and omitting the missing
argument, and also adding the compiler.cppstd=20
to the profile, it all builds! It's a bit of a mystery which change solved the problem. It's a shame Github Actions doesn't have a MacOS Arm64 runner.
Anyway, thanks for the help. Can actually do what I need to do now!
Seems like
b2
is downloaded as an Intel binary and does not run on an Apple M1 Max Macbook which does not have Rosetta installed. Could install Rosetta, but would be better to fix the issue.