REVrobotics / Saleae-FRC-CAN-Analyzer

Analyzer plugin for Saleae Logic which helps decode the FRC CAN protocol. Forked from https://github.com/saleae/can-analyzer
8 stars 1 forks source link

Build instructions do not work for Apple Silicon (M1) Macs #5

Open ReeceWeb opened 1 year ago

ReeceWeb commented 1 year ago

I followed the build instructions for Mac OS, and it failed in the last step with undefined symbols

% cmake --build .
[ 20%] Linking CXX shared module Analyzers/libcan_analyzer.so
ld: warning: ignoring file _deps/analyzersdk-src/lib/libAnalyzer.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
Undefined symbols for architecture arm64:
  "SimpleArchive::GetString()", referenced from:
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::SetString(char const*)", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "SimpleArchive::SimpleArchive()", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::~SimpleArchive()", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator<<(char const*)", referenced from:
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator<<(Channel&)", referenced from:
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator<<(bool)", referenced from:
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator<<(unsigned int)", referenced from:
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator>>(char const**)", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator>>(Channel&)", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator>>(bool&)", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "SimpleArchive::operator>>(unsigned int&)", referenced from:
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "ClockGenerator::AdvanceByHalfPeriod(double)", referenced from:
      CanSimulationDataGenerator::Initialize(unsigned int, CanAnalyzerSettings*) in CanSimulationDataGenerator.cpp.o
      CanSimulationDataGenerator::GenerateSimulationData(unsigned long long, unsigned int, SimulationChannelDescriptor**) in CanSimulationDataGenerator.cpp.o
      CanSimulationDataGenerator::WriteFrame(bool) in CanSimulationDataGenerator.cpp.o
  "ClockGenerator::Init(double, unsigned int)", referenced from:
      CanSimulationDataGenerator::Initialize(unsigned int, CanAnalyzerSettings*) in CanSimulationDataGenerator.cpp.o
  "ClockGenerator::ClockGenerator()", referenced from:
      CanSimulationDataGenerator::CanSimulationDataGenerator() in CanSimulationDataGenerator.cpp.o
  "ClockGenerator::~ClockGenerator()", referenced from:
      CanSimulationDataGenerator::CanSimulationDataGenerator() in CanSimulationDataGenerator.cpp.o
      CanSimulationDataGenerator::~CanSimulationDataGenerator() in CanSimulationDataGenerator.cpp.o
  "AnalyzerHelpers::AppendToFile(unsigned char const*, unsigned int, void*)", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerHelpers::GetTimeString(unsigned long long, unsigned long long, unsigned int, char*, unsigned int)", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerHelpers::GetNumberString(unsigned long long, DisplayBase, unsigned int, char*, unsigned int)", referenced from:
      CanAnalyzerResults::GenerateBubbleText(unsigned long long, Channel&, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::DisplayStringFromData(unsigned long long, DisplayBase, char*, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GetAPIClassString(unsigned long long, DisplayBase, char*, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GetAPIIndexString(unsigned long long, DisplayBase, char*, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GetCANIDString(unsigned long long, DisplayBase, char*, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateFrameTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
      ...
  "AnalyzerHelpers::AdjustSimulationTargetSample(unsigned long long, unsigned int, unsigned int)", referenced from:
      CanSimulationDataGenerator::GenerateSimulationData(unsigned long long, unsigned int, SimulationChannelDescriptor**) in CanSimulationDataGenerator.cpp.o
  "AnalyzerHelpers::Assert(char const*)", referenced from:
      CanAnalyzer::GetRawFrame() in CanAnalyzer.cpp.o
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
      CanSimulationDataGenerator::CreateDataOrRemoteFrame(unsigned int, bool, bool, std::__1::vector<unsigned char, std::__1::allocator<unsigned char> >&, bool) in CanSimulationDataGenerator.cpp.o
  "AnalyzerHelpers::EndFile(void*)", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerHelpers::StartFile(char const*, bool)", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::AddFrameV2(FrameV2 const&, char const*, unsigned long long, unsigned long long)", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "AnalyzerResults::GetNumFrames()", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::CommitResults()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
  "AnalyzerResults::GetNumPackets()", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::AddTabularText(char const*, char const*, char const*, char const*, char const*, char const*)", referenced from:
      CanAnalyzerResults::GenerateFrameTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::AddResultString(char const*, char const*, char const*, char const*, char const*, char const*)", referenced from:
      CanAnalyzerResults::GenerateBubbleText(unsigned long long, Channel&, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GeneratePacketTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateTransactionTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::ClearTabularText()", referenced from:
      CanAnalyzerResults::GenerateFrameTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::ClearResultStrings()", referenced from:
      CanAnalyzerResults::GenerateBubbleText(unsigned long long, Channel&, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GeneratePacketTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateTransactionTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::GetFramesContainedInPacket(unsigned long long, unsigned long long*, unsigned long long*)", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::AddChannelBubblesWillAppearOn(Channel const&)", referenced from:
      CanAnalyzer::SetupResults() in CanAnalyzer.cpp.o
  "AnalyzerResults::CancelPacketAndStartNewPacket()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
  "AnalyzerResults::CommitPacketAndStartNewPacket()", referenced from:
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "AnalyzerResults::UpdateExportProgressAndCheckForCancel(unsigned long long, unsigned long long)", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::AddFrame(Frame const&)", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "AnalyzerResults::GetFrame(unsigned long long)", referenced from:
      CanAnalyzerResults::GenerateBubbleText(unsigned long long, Channel&, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateFrameTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::AddMarker(unsigned long long, AnalyzerResults::MarkerType, Channel&)", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
  "AnalyzerResults::AnalyzerResults()", referenced from:
      CanAnalyzerResults::CanAnalyzerResults(CanAnalyzer*, CanAnalyzerSettings*) in CanAnalyzerResults.cpp.o
  "AnalyzerResults::~AnalyzerResults()", referenced from:
      CanAnalyzerResults::~CanAnalyzerResults() in CanAnalyzerResults.cpp.o
  "AnalyzerSettings::AddChannel(Channel&, char const*, bool)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::AddInterface(AnalyzerSettingInterface*)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::SetErrorText(char const*)", referenced from:
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::ClearChannels()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::LoadSettings(char const*) in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::AddExportOption(unsigned int, char const*)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::SetReturnString(char const*)", referenced from:
      CanAnalyzerSettings::SaveSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::AddExportExtension(unsigned int, char const*, char const*)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::AnalyzerSettings()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettings::~AnalyzerSettings()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::~CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerChannelData::GetBitState()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::WaitFor7RecessiveBits() in CanAnalyzer.cpp.o
      CanAnalyzer::GetRawFrame() in CanAnalyzer.cpp.o
  "AnalyzerChannelData::GetSampleNumber()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::GetRawFrame() in CanAnalyzer.cpp.o
  "AnalyzerChannelData::AdvanceToNextEdge()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::WaitFor7RecessiveBits() in CanAnalyzer.cpp.o
  "AnalyzerChannelData::AdvanceToAbsPosition(unsigned long long)", referenced from:
      CanAnalyzer::GetRawFrame() in CanAnalyzer.cpp.o
  "AnalyzerChannelData::WouldAdvancingCauseTransition(unsigned int)", referenced from:
      CanAnalyzer::WaitFor7RecessiveBits() in CanAnalyzer.cpp.o
  "AnalyzerSettingInterface::SetTitleAndTooltip(char const*, char const*)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterface::operator delete(void*)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterface::operator new(unsigned long)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "SimulationChannelDescriptor::SetChannel(Channel&)", referenced from:
      CanSimulationDataGenerator::Initialize(unsigned int, CanAnalyzerSettings*) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::Transition()", referenced from:
      CanSimulationDataGenerator::WriteFrame(bool) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::SetSampleRate(unsigned int)", referenced from:
      CanSimulationDataGenerator::Initialize(unsigned int, CanAnalyzerSettings*) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::GetCurrentBitState()", referenced from:
      CanSimulationDataGenerator::WriteFrame(bool) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::SetInitialBitState(BitState)", referenced from:
      CanSimulationDataGenerator::Initialize(unsigned int, CanAnalyzerSettings*) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::TransitionIfNeeded(BitState)", referenced from:
      CanSimulationDataGenerator::WriteFrame(bool) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::GetCurrentSampleNumber()", referenced from:
      CanSimulationDataGenerator::GenerateSimulationData(unsigned long long, unsigned int, SimulationChannelDescriptor**) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::Advance(unsigned int)", referenced from:
      CanSimulationDataGenerator::Initialize(unsigned int, CanAnalyzerSettings*) in CanSimulationDataGenerator.cpp.o
      CanSimulationDataGenerator::GenerateSimulationData(unsigned long long, unsigned int, SimulationChannelDescriptor**) in CanSimulationDataGenerator.cpp.o
      CanSimulationDataGenerator::WriteFrame(bool) in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::SimulationChannelDescriptor()", referenced from:
      CanSimulationDataGenerator::CanSimulationDataGenerator() in CanSimulationDataGenerator.cpp.o
  "SimulationChannelDescriptor::~SimulationChannelDescriptor()", referenced from:
      CanSimulationDataGenerator::~CanSimulationDataGenerator() in CanSimulationDataGenerator.cpp.o
  "AnalyzerSettingInterfaceBool::SetCheckBoxText(char const*)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceBool::GetValue()", referenced from:
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceBool::SetValue(bool)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::UpdateInterfacesFromSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceBool::AnalyzerSettingInterfaceBool()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceChannel::GetChannel()", referenced from:
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceChannel::SetChannel(Channel const&)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::UpdateInterfacesFromSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceChannel::AnalyzerSettingInterfaceChannel()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceInteger::GetInteger()", referenced from:
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceInteger::SetInteger(int)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::UpdateInterfacesFromSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceInteger::SetMax(int)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceInteger::SetMin(int)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "AnalyzerSettingInterfaceInteger::AnalyzerSettingInterfaceInteger()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
  "Frame::HasFlag(unsigned char)", referenced from:
      CanAnalyzerResults::GenerateBubbleText(unsigned long long, Channel&, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateFrameTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "Frame::Frame()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "Frame::~Frame()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
      CanAnalyzerResults::GenerateBubbleText(unsigned long long, Channel&, DisplayBase) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
      CanAnalyzerResults::GenerateFrameTabularText(unsigned long long, DisplayBase) in CanAnalyzerResults.cpp.o
  "Channel::Channel(unsigned long long, unsigned int, ChannelDataType)", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "Channel::~Channel()", referenced from:
      CanAnalyzerSettings::CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::~CanAnalyzerSettings() in CanAnalyzerSettings.cpp.o
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "Channel::operator=(Channel const&)", referenced from:
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "FrameV2::AddBoolean(char const*, bool)", referenced from:
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "FrameV2::AddInteger(char const*, long long)", referenced from:
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "FrameV2::AddByte(char const*, unsigned char)", referenced from:
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "FrameV2::AddString(char const*, char const*)", referenced from:
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "FrameV2::FrameV2()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "FrameV2::~FrameV2()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzer::AnalizeRawFrame() in CanAnalyzer.cpp.o
  "Analyzer::KillThread()", referenced from:
      CanAnalyzer::~CanAnalyzer() in CanAnalyzer.cpp.o
  "Analyzer::UseFrameV2()", referenced from:
      CanAnalyzer::CanAnalyzer() in CanAnalyzer.cpp.o
  "Analyzer::GetSampleRate()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "Analyzer::ReportProgress(unsigned long long)", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
  "Analyzer::GetTriggerSample()", referenced from:
      CanAnalyzerResults::GenerateExportFile(char const*, DisplayBase, unsigned int) in CanAnalyzerResults.cpp.o
  "Analyzer::SetAnalyzerResults(AnalyzerResults*)", referenced from:
      CanAnalyzer::SetupResults() in CanAnalyzer.cpp.o
  "Analyzer::SetAnalyzerSettings(AnalyzerSettings*)", referenced from:
      CanAnalyzer::CanAnalyzer() in CanAnalyzer.cpp.o
  "Analyzer::GetAnalyzerChannelData(Channel&)", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
  "Analyzer::CheckIfThreadShouldExit()", referenced from:
      CanAnalyzer::WorkerThread() in CanAnalyzer.cpp.o
  "Analyzer::GetSimulationSampleRate()", referenced from:
      CanAnalyzer::GenerateSimulationData(unsigned long long, unsigned int, SimulationChannelDescriptor**) in CanAnalyzer.cpp.o
  "Analyzer::~Analyzer()", referenced from:
      Analyzer2::~Analyzer2() in CanAnalyzer.cpp.o
  "Analyzer2::Analyzer2()", referenced from:
      CanAnalyzer::CanAnalyzer() in CanAnalyzer.cpp.o
  "Channel::operator==(Channel const&) const", referenced from:
      CanAnalyzerSettings::SetSettingsFromInterfaces() in CanAnalyzerSettings.cpp.o
  "typeinfo for AnalyzerResults", referenced from:
      typeinfo for CanAnalyzerResults in CanAnalyzerResults.cpp.o
  "typeinfo for AnalyzerSettings", referenced from:
      typeinfo for CanAnalyzerSettings in CanAnalyzerSettings.cpp.o
  "typeinfo for Analyzer2", referenced from:
      typeinfo for CanAnalyzer in CanAnalyzer.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]: *** [Analyzers/libcan_analyzer.so] Error 1
make[1]: *** [CMakeFiles/can_analyzer.dir/all] Error 2
make: *** [all] Error 2
NoahAndrews commented 1 year ago

Does the official Saleae CAN analyzer have the same issue? If so, please file an issue over there, and we'll backport their fix once it's released.

NoahAndrews commented 1 year ago

It's worth noting that according to this article, Logic is not yet built for arm64 / Apple Silicon (which is why it needs Rosetta). Your log clearly shows that it's trying to build for macOS-arm64, when you actually need it built for x86. I'm not sure how to tell the build system to build for x86 on an arm64 Mac.