Xây dựng homebrew với vòm khác nhau?


9

Tôi đã cố gắng cài đặt công thức mysql-Connector-c qua homebrew và nó xây dựng tốt, nhưng tạo ra thư viện x86_64:

  $file ~/brew/lib/libmysql.dylib 
  .../brew/lib/libmysql.dylib: Mach-O 64-bit dynamically linked shared library x86_64

Tuy nhiên tôi cần thư viện i386 cho dự án của tôi. Tôi đã cố gắng cung cấp cho nó CFLAGS và LDFLAGS như thế này:

  CFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" brew install mysql-connector-c

nhưng không có gì thay đổi - nó vẫn chỉ xây dựng nhị phân x86_64. Có cách nào để làm cho homebrew xây dựng thư viện vòm kép hoặc thư viện i386 không? Tôi có kiến ​​trúc kernel được đặt thành x86_64, nếu nó quan trọng.


bạn đang sử dụng phiên bản mac nào? Tôi không thể làm cho nó hoạt động trên máy Mac 10.8.1. Bạn có thể dán kịch bản bia sửa đổi của bạn ở đây làm tài liệu tham khảo? Cảm ơn rất nhiều.
Kane

Câu trả lời:


5

Bạn có thể thử như sau:

brew edit mysql-connector-c

và sau đó sửa đổi việc khởi tạo trong khối "cài đặt".

Mặc dù tôi đã không thử điều này, nhưng bạn phải làm một cái gì đó như thế này:

ENV['CFLAGS']='xxx'
ENV['LDFLAGS']='xxx'

Bạn có thể kiểm tra ví dụ ở đây: Sự cố với homebrew, không thể cài đặt bất cứ thứ gì ...


Vì vậy, những gì tôi sẽ đặt ở đó? Định nghĩa CFLAGS?
StasM

Các liên kết cho biết : ENV['CFLAGS']=ENV['CXXFLAGS']="-arch i386". i386 là một chút quá mức.
harrymc

dường như đang làm việc, thư viện bây giờ là i386. Cảm ơn bạn!
StasM

@harrymc và StasM, phiên bản mac nào bạn đang sử dụng? Tôi không thể làm cho nó hoạt động trên máy Mac 10.8.1. Bạn có thể dán kịch bản bia sửa đổi của bạn ở đây làm tài liệu tham khảo? Cảm ơn.
Kane

Mỏ @Kane là 10.6.8.
StasM

5

Gặp phải vấn đề tương tự khi cài đặt DevIL. Có vẻ như Homebrew đang cố gắng vệ sinh các tham số dòng lệnh được truyền cho các công cụ, ít nhất là trên ML:

$ brew install -v devil
...
brew: superenv removed: -arch i386
...

Tôi đã chỉnh sửa công thức như trong câu trả lời của Walty để chỉ định CFLAGS và CXXFLAGS, nhưng chạy cài đặt với môi trường tiêu chuẩn thay thế:

$ brew install --env=std devil

3

Một số Công thức có một tùy chọn phổ quát cho phép bạn biên dịch cho cả i386 và x86_64 cùng một lúc:

$ brew options sdl
--universal
        Build a universal binary

Việc mysql-connector-cnày không cung cấp tùy chọn này nhưng tôi thấy rất dễ dàng để thêm tùy chọn vào một công thức khác mà tôi đang làm việc: https://github.com/mxcl/homebrew/pull/18713/files

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.