Closed samuelboland closed 7 months ago
I think you can let qt handle finding the library instead of the current way to specify the path. This might break building on older versions however. Are you attempting a universal binary build?
any solution?
In /phoenix.pro
I had to edit it to replace those old Framework file references (that were broken with Big Sur's move to a combined dyld cache). These were the original lines:
LIBS += /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
LIBS += /System/Library/Frameworks/Carbon.framework/Carbon
LIBS += /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
Which I replaced by:
LIBS += -framework CoreFoundation
LIBS += -framework Carbon
LIBS += -framework IOKit
I also used these to link to my MacPorts versions of libraries:
LIBS += /opt/local/lib/libssh2.dylib
LIBS += /opt/local/lib/libiconv.dylib
LIBS += /opt/local/lib/libz.dylib
Also in /pri/libgit2detect.pri
I had to change this line:
LIBS += $$LIBGIT2LIB/libgit2.a /System/Library/Frameworks/Security.framework/Versions/A/Security
To:
LIBS += $$LIBGIT2LIB/libgit2.a -framework Security
I followed the steps above but I am still getting a runtime error.
:-1: error: framework not found libz.dylib
What did you replace LIBS += /usr/lib/libz.dylib
with?
Update 01/31/2023:
I have resolved this issue by installing zlib
with MacPorts and adding LIBS += /opt/local/lib/libz.dylib
I have resolved the zlib
issue by installing it wit MacPorts. However I am now getting the error below:
:-1: error: Undefined symbols for architecture x86_64: "_git_annotated_commit_free", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_annotated_commit_lookup", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_checkout_tree", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_commit_create_v", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_commit_free", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_commit_lookup", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_index_free", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_index_write_tree", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_libgit2_init", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o PartsChecker::getSha(QString const&) in partschecker.o PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_libgit2_shutdown", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o PartsChecker::getSha(QString const&) in partschecker.o PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_merge", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_merge_analysis", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_object_free", referenced from: PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o "_git_object_lookup", referenced from: PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o "_git_oid_fmt", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o PartsChecker::getSha(QString const&) in partschecker.o "_git_oid_fromstr", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_oid_tostr_s", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o "_git_reference_free", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_reference_lookup", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_reference_name", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_reference_name_to_id", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o PartsChecker::getSha(QString const&) in partschecker.o "_git_reference_resolve", referenced from: PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o "_git_reference_set_target", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_reference_shorthand", referenced from: PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o "_git_reference_target", referenced from: PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_reference_type", referenced from: PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o "_git_remote_connect", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o "_git_remote_fetch", referenced from: PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_remote_free", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_remote_lookup", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_remote_ls", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o "_git_remote_url", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o "_git_repository_free", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o PartsChecker::getSha(QString const&) in partschecker.o PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_repository_head", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_repository_index", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_repository_is_bare", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o "_git_repository_open", referenced from: PartsChecker::newPartsAvailable(QString const&, QString const&, bool, QString&, PartsCheckerResult&) in partschecker.o PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o PartsChecker::getSha(QString const&) in partschecker.o PartsChecker::updateParts(QString const&, QString const&, PartsCheckerUpdateInterface) in partschecker.o "_git_repository_state_cleanup", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_reset", referenced from: PartsChecker::cleanRepo(QString const&, PartsCheckerResult const&) in partschecker.o "_git_signature_free", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_signature_now", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_status_byindex", referenced from: PartsChecker::getChanges(git_status_list, PartsCheckerResult&) in partschecker.o "_git_status_list_entrycount", referenced from: PartsChecker::getChanges(git_status_list, PartsCheckerResult&) in partschecker.o "_git_status_list_free", referenced from: PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o "_git_status_list_new", referenced from: PartsChecker::checkIfClean(QString const&, QString const&, git_repository, PartsCheckerResult&) in partschecker.o "_git_tree_free", referenced from: PartsChecker::doMerge(git_repository, QString const&) in partschecker.o "_git_tree_lookup", referenced from: PartsChecker::doMerge(git_repository*, QString const&) in partschecker.o
Does anyone know why this is? For reference, I am using a 2020 M1 MacBook Air.
Looks like you're missing libgit2
I do have libgit2 installed in the same folder as my Fritzing app. I looked over the libgit2 docs and it looks like everything is set up right, is there a specific command I need to add to my PATH
variable to make the library work?
Also I was wondering if it might have anything to do with the fact that the M1 is ARM-based, not x86_64, my only thought about this is the first line which says:
👎 error: Undefined symbols for architecture x86_64:
Current Behaviour
Attempting to compile following instructions here: https://github.com/fritzing/fritzing-app/wiki/1.-Building-Fritzing leads to a failure on OS X Big Sur.
Error text copied here:
[Build:] Latest git version on 'develop' branch with SHA b8c2430b09123770bffe079d756643d78957c1a5
Operating System: OS X 11.2 (Big Sur)
Steps to reproduce:
Expected Behaviour
Compilation proceeds successfully.
Notes
I believe that this may due to a similar issue to this Stackoverflow question: https://stackoverflow.com/questions/62587131/macos-big-sur-python-ctypes-find-library-does-not-find-libraries-ssl-corefou
It appears that Apple has removed some libraries from the filesystem and instead stores them in some sort of cache. This is not my area of expertise so I am unable to comment further.