Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
892 stars 199 forks source link

Can't compile API on Mac mini M1 #3669

Closed jlnsrk closed 1 year ago

jlnsrk commented 1 year ago

Version and Platform (required):

Bug Description: When trying to build the api I get this linker error: "_BNLoadSettingsFile", referenced from: BinaryNinja::Settings::LoadSettingsFile(std::1::basic_string<char, std::__1::char_traits, std::1::allocator > const&, BNSettingsScope, BinaryNinja::Ref) in libbinaryninjaapi.a(settings.cpp.o) ld: symbol(s) not found for architecture arm64

Steps To Reproduce: I followed the example in the readme with this exception for configuration: cmake -S . -B build -DBN_API_BUILD_EXAMPLES=ON -DHEADLESS

Expected Behavior: The compile succeeds.

Additional Information: I don't think there is more relevant information.

psifertex commented 1 year ago

What version of Binary Ninja are you running? You need to have a version of the core that matches the version of the API.

xusheng6 commented 1 year ago

This is likely caused by a mismatch between the API version and your core version. You can either update your binary ninja to the latest dev, or checkout the API repo to the commit that is used to build your core. To find the commit, find a api_REVISION.txt file in your binary ninja folder (/Applications/Binary Ninja.app/Contents/Resources on macOS). And there is a commit hash in it.

This would be solved by #3385

jlnsrk commented 1 year ago

This likely my issue, I appreciate the fast help!