Khác

Không tìm thấy (các) biểu tượng lỗi Mac cho kiến ​​trúc x86_64

Ở đó

Áp phích gốc
22 thg 7, 2016
  • 22 thg 7, 2016
Chào mọi người,

Tôi đang làm việc trong một dự án bao gồm biên dịch ứng dụng Windows trên Mac. Ứng dụng được viết bằng C ++ với Qt. Nó bao gồm các thư viện và dự án chính:
http://hpics.li/d8bb2ec
Dự án sử dụng thư viện bên ngoài, ODA, để quản lý các tệp .dwg và .dgn.
Vấn đề là khi tôi biên dịch thư viện đầu tiên (MdCore), tôi gặp lỗi: không tìm thấy (các) biểu tượng cho kiến ​​trúc x86_64.
Lúc đầu, tôi đã thêm -stdlib = libstdc ++ vào đối số qmake nhưng Qt đã tạo cho tôi các tệp 0 byte, vì vậy nó không phải là giải pháp.
Tôi đã thử phiên bản khác của ODA libary: 32bit, 64bit cho OSX 10.7 và 10.11. (Máy Mac của tôi chạy OSX 10.11)
Tôi đã thực hiện lệnh 'tệp' trên các thư viện của mình và đây là kết quả đầu ra:

:
.a: thư viện ngẫu nhiên kho lưu trữ ar hiện tại

.dylib:
Mach-0 nhị phân phổ quát với 2 kiến ​​trúc
(dành cho kiến ​​trúc x68_64): Thư viện chia sẻ 64-bit được liên kết động Mach-0 x86_64
(dành cho kiến ​​trúc i386): Thư viện chia sẻ được liên kết động Mach-0 i386

Tôi đã cố gắng biên dịch trên 32 và 64bit nhưng nó không thay đổi bất cứ điều gì. Tôi đang gặp vấn đề này trong hai tuần, tôi không biết mình có thể làm gì

Tôi đã làm một chủ đề trên diễn đàn Qt có thể bạn có thể tìm thêm thông tin:
https://forum.qt.io/topic/69171/compile-generate-0-byte-files-on-os-x/11
https://forum.qt.io/topic/69171/compile-generate-0-byte-files-on-os-x/11
Nếu ai đó có manh mối hoặc giải pháp, tôi sẽ quan tâm

Cảm ơn ! NS

cqexbesd

Ngày 4 tháng 6 năm 2009


nước Đức
  • 22 thg 7, 2016
Tôi không biết bất cứ điều gì về qmake nhưng có lẽ bạn chỉ nên đăng các lệnh trình biên dịch của bạn để biên dịch và có thể ai đó sẽ có thể xem điều gì sai.

Ở đó

Áp phích gốc
22 thg 7, 2016
  • 22 thg 7, 2016
chào cqexbesd, cảm ơn câu trả lời của bạn, đây là phần bắt đầu của đầu ra bản dựng:

17:34:10: Bắt đầu: '/Users/developpement/Qt/5.7/clang_64/bin/qmake' /Users/developpement/Desktop/Mediacad2/MdCore/MdCore.pro -r -spec macx-clang CONFIG + = debug CONFIG + = x86_64 CONFIG + = qml_debug

17:34:10: Quá trình '/Users/developpement/Qt/5.7/clang_64/bin/qmake' đã kết thúc bình thường

17:34:10: Bắt đầu: '/ usr / bin / make'

... NS

cqexbesd

Ngày 4 tháng 6 năm 2009
nước Đức
  • 24 Thg 07, 2016
Ý tôi là qmake chỉ là một công cụ để gọi trình biên dịch. Bạn có thể tìm thấy dòng mà qmake gọi trình biên dịch không? Có lẽ nó không gọi nó một cách chính xác hoặc mọi thứ sẽ hoạt động. Nó ít nhất là một nơi nào đó để bắt đầu.

Ở đó

Áp phích gốc
22 thg 7, 2016
  • 25 thg 7, 2016
Tôi nghĩ nó ở đây:
Mã: Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -g -std=gnu++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -mmacosx-version-min=10.8 -Wall -W -fPIC -DMDCORE_LIBRARY -D_TOOLKIT_IN_DLL_ -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../MdCore -I. -I../../include -I../../include/teigha -I../../include/Extensions/ExServices -I../../include/Extensions/win -I../../include/Extensions/win/Crypt -I../../../../Qt/5.7/clang_64/lib/QtWidgets.framework/Headers -I../../../../Qt/5.7/clang_64/lib/QtGui.framework/Headers -I../../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/AGL.framework/Headers -I../../../../Qt/5.7/clang_64/mkspecs/macx-clang -F/Users/developpement/Qt/5.7/clang_64/lib -o mduserio.o ../../MdCore/mduserio.cpp
trong đầu ra biên dịch của tôi, tôi có những dòng đó một vài lần, nhưng chỉ dòng cuối cùng thay đổi (tên của tệp thay đổi)

Chỉnh sửa: đây là những dòng giống nhau nhưng có khoảng cách giữa chúng
Mã: Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -g -std=gnu++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -mmacosx-version-min=10.8 -Wall -W -fPIC -DMDCORE_LIBRARY -D_TOOLKIT_IN_DLL_ -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../MdCore -I. -I../../include -I../../include/teigha -I../../include/Extensions/ExServices -I../../include/Extensions/win -I../../include/Extensions/win/Crypt -I../../../../Qt/5.7/clang_64/lib/QtWidgets.framework/Headers -I../../../../Qt/5.7/clang_64/lib/QtGui.framework/Headers -I../../../../Qt/5.7/clang_64/lib/QtCore.framework/Headers -I. -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/OpenGL.framework/Headers -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/AGL.framework/Headers -I../../../../Qt/5.7/clang_64/mkspecs/macx-clang -F/Users/developpement/Qt/5.7/clang_64/lib -o mduserio.o ../../MdCore/mduserio.cpp Lần sửa cuối bởi người kiểm duyệt: 25 tháng 7, 2016 NS

cqexbesd

Ngày 4 tháng 6 năm 2009
nước Đức
  • 25 thg 7, 2016
Cũng phải có một đường liên kết - ví dụ: một dòng trong đó clang ++ được gọi mà không có đối số -c. Nó có thể hữu ích nếu bạn có thể dán một liên kết đến toàn bộ đầu ra trên thực tế.

Ở đó

Áp phích gốc
22 thg 7, 2016
  • 26 thg 7, 2016
Tôi không nghĩ rằng có thể thay đổi các đối số của trình biên dịch. Tôi có thể làm điều đó với lời nhắc.
Đây là đầu ra đầy đủ (rất dài! 100.000 dòng): http://textup.fr/171939hC


Chỉnh sửa: Tôi đã biên dịch với lời nhắc nên tôi có nhiều dòng hơn trên đầu ra và những dòng cuối cùng rất thú vị:


Các ký hiệu không xác định cho kiến ​​trúc x86_64:

Mã: '_CFArrayGetCount', referenced from: ExSystemServices::ExSystemServices() in ExSystemServices.o '_CFArrayGetValueAtIndex', referenced from: ExSystemServices::ExSystemServices() in ExSystemServices.o '_CFLocaleCopyPreferredLanguages', referenced from: ExSystemServices::ExSystemServices() in ExSystemServices.o '_CFStringGetCharacterAtIndex', referenced from: ExSystemServices::ExSystemServices() in ExSystemServices.o '_CFStringGetLength', referenced from: ExSystemServices::ExSystemServices() in ExSystemServices.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [../debug/libMdCore.1.0.0.dylib] Error 1 Chỉnh sửa lần cuối bởi người kiểm duyệt: 26 tháng 7, 2016 NS

cqexbesd

Ngày 4 tháng 6 năm 2009
nước Đức
  • 26 thg 7, 2016
Tôi nghĩ rằng đầu ra 100K cho một bản dựng từ bất cứ thứ gì nhưng hệ thống phức tạp nhất có lẽ là một dấu hiệu cho thấy mọi thứ đã sai ở đâu đó - nhưng đó là nhận xét chung hơn về tình trạng của ngành.

Quay lại vấn đề cụ thể của bạn. Tôi không thấy lỗi liên kết mà bạn đã đăng trong 'đầu ra đầy đủ', tuy nhiên, đây có vẻ chỉ là lỗi trình liên kết thông thường. Như trên các nền tảng khác, bạn có thể sử dụng nm (hoặc Google) để tìm nơi các ký hiệu đó được xác định và nó dường như nằm trong /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation cho tôi (nhưng tôi có một mac cũ nên nó có thể không đúng với bạn).

Bạn sẽ không liên kết trực tiếp với thư viện đó. Thử thêm Mã: -framework CoreFoundation đến cờ trình liên kết của bạn.

Ở đó

Áp phích gốc
22 thg 7, 2016
  • 27 thg 7, 2016
Có bạn đúng !! Cảm ơn bạn rất nhiều tôi có thể biên dịch ngay bây giờ! Tôi đã phải đối mặt với vấn đề này trong 3 tuần! Cảm ơn rất nhiều ! VỚI

zibby

5 thg 2, 2019
  • 5 thg 2, 2019
cqexbesd cho biết: Tôi nghĩ đầu ra 100K cho một bản dựng từ bất cứ thứ gì nhưng hệ thống phức tạp nhất có lẽ là dấu hiệu cho thấy mọi thứ đã sai ở đâu đó - nhưng đó là nhận xét chung hơn về tình trạng của ngành.

Quay lại vấn đề cụ thể của bạn. Tôi không thấy lỗi liên kết mà bạn đã đăng trong 'đầu ra đầy đủ', tuy nhiên, đây có vẻ chỉ là lỗi trình liên kết thông thường. Như trên các nền tảng khác, bạn có thể sử dụng nm (hoặc Google) để tìm nơi các ký hiệu đó được xác định và nó dường như nằm trong /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation cho tôi (nhưng tôi có một mac cũ nên nó có thể không đúng với bạn).

Bạn sẽ không liên kết trực tiếp với thư viện đó. Thử thêm Mã: -framework CoreFoundation đến cờ trình liên kết của bạn.
VỚI

zibby

5 thg 2, 2019
  • 5 thg 2, 2019
xin chào các bạn ... tôi đã gặp phải một vấn đề rất tương tự ... nhưng tôi đang sử dụng thiết bị đầu cuối để biên dịch ... ai đó có thể giúp đỡ về cách tôi có thể thực hiện cùng một giải pháp trong trường hợp thiết bị đầu cuối không?

tôi có một tệp ./configure đã sẵn sàng và nó chạy trơn tru nhưng tôi nhận được ffi ... liên quan 'không tìm thấy ký hiệu ...' và điều cần làm với trình liên kết khi tôi chạy thực hiện

okieiam

Ngày 17 tháng 12 năm 2016
  • 8 thg 2, 2019
zibbi đã nói: xin chào các bạn ... tôi đã gặp phải một vấn đề rất tương tự ... nhưng tôi đang sử dụng thiết bị đầu cuối để biên dịch ... ai đó có thể vui lòng giúp đỡ về cách tôi có thể thực hiện cùng một giải pháp trong trường hợp thiết bị đầu cuối không?

tôi có một tệp ./configure đã sẵn sàng và nó chạy trơn tru nhưng tôi nhận được ffi ... liên quan 'không tìm thấy ký hiệu ...' và điều cần làm với trình liên kết khi tôi chạy thực hiện
vi CPPFLAGS = '- I / home / foo / sw / include' LDFLAGS = '- L / home / foo / sw / lib /' ./configure