Clemapfel / jluna

Julia Wrapper for C++ with Focus on Safety, Elegance, and Ease of Use
https://clemens-cords.com/jluna
MIT License
252 stars 13 forks source link

Build Error on M1 MacBook Pro #50

Closed GrantHecht closed 1 year ago

GrantHecht commented 1 year ago

I'm currently getting build errors (no matching function for call to box<size_t>(it) and unbox<size_t>(it)) on my M1 MacBook Pro when following the build instructions provided in README.md.

Here's the CMAKE configuration and make output: buildoutput.txt

Clemapfel commented 1 year ago

Sorry for the late reply.

Can you instead compile using GCC or Clang? You are currently using AppleClang, which I have no experience with and no way of testing so I can't even attempt to reproduce this.

You should be able to override the compiler by setting -DCMAKE_CXX_COMPILER="/usr/bin/g++" during the cmake .. configure step

To install g++, use brew install gcc and double check the executable actually landed in /usr/bin/.

GrantHecht commented 1 year ago

Using GCC 13.1.0, I still get a similar error which seems to be due to the definition of size_t on Mac OS. Here's my cmake and make output using gcc.

cmake_out.txt make_out.txt make_err.txt

Clemapfel commented 1 year ago

Yeah it seems like you are right there's something weird with the size_t definition on the M1.

Could you try this branch? I replaced all the size_t with explicitly typed uint64_t which has no ambiguity.

You can pull the branch and build it like so:

# in any public directory
git clone https://github.com/Clemapfel/jluna
cd jluna
git pull origin size_t_error
git checkout size_t_error
mkdir build
cd build
cmake ..
make

Thank you for helping with this, I don't have access to a mac to test it myself so I am thankful that you're taking the time.

GrantHecht commented 1 year ago

Sure thing. I'm not familiar enough with C++20 to correct the bug, but I'm happy to help however I can.

Here's the cmake and make output from attempting to build on the "size_t_error" branch: cmake_size_t_error_out.txt make_size_t_error_out.txt make_size_t_error_err.txt

GrantHecht commented 1 year ago

Well, I've got jluna building successfully with GCC and AppleClang on my fork here (just needed to change a few other uses of size_t to uint64_t).

Clemapfel commented 1 year ago

Closed by #52

Thank you for contributing!

MorrowChem commented 1 year ago

I get precisely the same error as Grant on my M2 Mac - both on master and size_t_error branches. Can't figure out what's going wrong for me, can build on linux fine.

cmake .. -DCMAKE_CXX_COMPILER=/opt/homebrew/bin/g++-13 make

make_size_t_error_2.txt