Tôi có một dự án Xcode về cơ bản là một ứng dụng duy nhất được tích hợp vào một số mục tiêu gần như giống hệt nhau. Tôi đã di chuyển gần như tất cả các thiết lập cấu hình xây dựng ở những nơi trung tâm, nhưng tôi không thể tìm ra cách di chuyển liên kết với một thư viện tĩnh (libMantle.a) đến xcconfig. Tôi đã thử các cờ -framework
và -l
, như tôi đang sử dụng cho nhiều thư viện khác, nhưng chúng không hoạt động. Có cách nào để có được một file .a ra khỏi cửa sổ Link Binary with Libraries, vì vậy tôi không cần phải giữ tất cả các mục tiêu đồng bộ một cách thủ công?Liên kết nhị phân với thư viện tĩnh trong xcconfig
Trả lời
Đã tìm ra ...
Giả sử bạn muốn liên kết với tệp libGoogleAnalyticsServices.a
. Về cơ bản có ba thứ bạn nên có trong tệp .xcconfig để làm việc đó.
Trước tiên, bạn muốn đảm bảo rằng bạn có đường dẫn đến thư viện trong đường dẫn tìm kiếm của mình. Sau đó, bạn cần phải vượt qua hai cờ để làm cho trình liên kết hài lòng -L
với đường dẫn đến thư mục và -l
với thư viện.
Đưa nó tất cả cùng nhau sẽ giúp bạn có một cái gì đó như:
LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/Vendor/Google Analytics"
OTHER_LDFLAGS = $(inherited) -L"$(SRCROOT)/Vendor/Google Analytics" -lGoogleAnalyticsServices
(Bạn sẽ cần phải điều chỉnh cho đường dẫn tương đối của bạn)
Điều hữu ích nhất trong việc này được sắp xếp ra là Log Navigator (lệnh + 8 trong Xcode). Bằng cách đặt thư viện tĩnh trong bảng Xây dựng giai đoạn Link Binary With Libraries
và thực hiện xây dựng thành công, bạn có thể xem chi tiết về bước trình liên kết trong nhật ký và xem cách nó chuyển thư viện Analytics đến trình biên dịch. Từ đó nó chỉ sao chép những lá cờ trong xcconfig.
- 1. VS2010: Liên kết trong một thư viện tĩnh tĩnh
- 2. liên kết với thư viện tĩnh 0MQ trong VS
- 3. Các thư viện liên kết tĩnh trong MinGW
- 4. Liên kết tĩnh các thư viện SDL2
- 5. Liên kết FreeImage như một thư viện tĩnh trong VS2010?
- 6. Buộc liên kết tĩnh của thư viện được liên kết với mục tiêu Xcode?
- 7. Liên kết LLVM JIT Mã với Thư viện LLVM tĩnh?
- 8. Liên kết thư viện được chia sẻ với thư viện tĩnh: thư viện tĩnh có được biên dịch khác với một ứng dụng đang liên kết nó không?
- 9. Tăng liên kết tĩnh của thư viện trên Xcode 4
- 10. Liên kết thư viện tĩnh với thư viện được chia sẻ của JNI trong Android
- 11. Liên kết nhị phân với các thư viện VS Các khung nhúng
- 12. C++ Thư viện được chia sẻ liên kết tĩnh
- 13. Liên kết các thư viện tĩnh, chia sẻ một thư viện tĩnh khác
- 14. Cách liên kết Boost trong thư viện tĩnh phụ thuộc
- 15. Có gì bên trong tệp .lib của thư viện tĩnh, thư viện động được liên kết tĩnh và thư viện động được liên kết động?
- 16. Tạo thư viện tĩnh và liên kết với thư viện đó bằng tiền tố
- 17. Liên kết tĩnh OpenSSL crypto thư viện trong CMake
- 18. Có thể liên kết Thư viện tĩnh C++ với thư viện được chia sẻ không?
- 19. linux g ++ liên kết 64 bit mã thư viện chia sẻ với thư viện tĩnh
- 20. Cách cung cấp tùy chọn trình liên kết khi liên kết thư viện tĩnh với qmake?
- 21. Liên kết tĩnh tĩnh và liên kết động với glibc
- 22. cách liên kết thư viện tĩnh cho iOS
- 23. Chuyển đổi thư viện liên kết tĩnh thành dll động
- 24. Nói trực tiếp gcc để liên kết thư viện tĩnh
- 25. Liên kết Visual C againts Thư viện tĩnh của MinGW
- 26. Liên kết với thư viện năng động với phụ thuộc
- 27. Liên kết tĩnh trong C#
- 28. Liên kết Tĩnh với glibc và libstdC++
- 29. Được liên kết tĩnh, thư viện readline hoạt động chính xác trong các cửa sổ?
- 30. Kết hợp các thư viện tĩnh
Tôi có thể hỏi cách bạn xử lý các tệp nguồn cho các mục tiêu khác nhau không? Bạn có thêm chúng vào tập tin xcconfig không? Điều đó thậm chí có thể? – vinzenzweber
Các tệp xcconfig mục tiêu cụ thể trở nên khá lộn xộn, vì không có cách nào thực sự tốt để thực hiện nó. Tôi hiếm khi có các dự án có mục tiêu có sự phụ thuộc thư viện khác nhau đáng kể. Cụ thể bạn đang cố gắng làm gì? – farski
Tôi có một dự án với 9 mục tiêu. Tôi chỉ cần những mục tiêu đó để thiết lập một macro tiền xử lý ONE SINGLE cho mỗi mục tiêu. Chủ yếu là thay đổi URL API cơ sở cho các môi trường khác nhau (phát triển, dàn dựng, sản xuất). Vì vậy, tôi rất thích có một tệp chỉ định cấu hình cơ sở xây dựng bao gồm tất cả các tệp nguồn và tài nguyên để sao chép. – vinzenzweber