2012-06-13 34 views
6

bước:
1. thúc đẩy cổng sudo
File tăng được cài đặt trong/opt/local/tăng, các file thư viện là trong/opt/local/lib

2. sử dụng XCode để tạo C++ dự án
Làm thế nào để xây dựng chương trình thúc đẩy đơn giản trên Mac OS (Lion)

#include <iostream> 
#include <boost/asio.hpp> 
int main() { 
    return 0; 
} 


3. bộ XCode để tìm hiểu tăng
trong "Xây dựng Settings" -> "HEADER_SEARCH_PATHS"
trong cả hai Gỡ lỗi và Phát hành thêm đường dẫn/chọn/địa phương/bao gồm

4. "Cài đặt xây dựng" -> "LIBRARY_SEARCH_PATHS" -> thêm/opt/local/lib cả để gỡ lỗi và phát hành.

5. xây dựng chương trình và không thành công.
Messages Lỗi,

Undefined symbols for architecture x86_64: 
    "boost::system::generic_category()", referenced from: 
    ___cxx_global_var_init1 in main.o 
    ___cxx_global_var_init2 in main.o 
    "boost::system::system_category()", referenced from: 
    ___cxx_global_var_init3 in main.o 
    boost::asio::error::get_system_category() in main.o 
    "boost::asio::error::get_netdb_category()", referenced from: 
    ___cxx_global_var_init5 in main.o <br> 
    "boost::asio::error::get_addrinfo_category()", referenced from: 
    ___cxx_global_var_init6 in main.o <br> 
    "boost::asio::error::get_misc_category()", referenced from: 
    ___cxx_global_var_init7 in main.o <br> 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Am I wrong trong thủ tục?

+0

Điều này có vẻ để giống như một câu hỏi làm thế nào để liên kết với một thư viện trong một dự án đúng cách. Đường dẫn là không đủ, nhưng thư viện cũng phải được chỉ định. – lpapp

Trả lời

8

Bạn cần phải liên kết với Boost.System, mà phải ở trong /opt/local/lib/libboost_system (với một số hậu tố, mà phụ thuộc vào tăng cách bạn xây dựng)

Thêm vào đó để dự án Xcode của bạn.

+0

Điều này là chính xác mặc dù thiếu sự chấp nhận. Tôi đặt khoảng cách đó trong tài liệu nhưng chắc chắn là nó [ngay tại đây] (http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/using.html#boost_asio.using.dependencies). –

+0

Làm cách nào để bạn thêm nội dung vào/chọn tham gia dự án XCode của mình?/opt là một thư mục vô hình. –

+0

@WarrenP Tôi kéo/chọn/thư mục vào lefeside của công cụ tìm làm lối tắt. Tôi cũng hiển thị tất cả các tệp ẩn nhưng cũng không thể hiển thị trong bảng nối kết thư viện Xcode. – CCC

4
  1. chọn vào "mục tiêu" của bạn
  2. trong "Liên kết với các thư viện nhị phân" phần dưới "xây dựng giai đoạn" tab, thêm thư viện boost.
  3. nếu cài đặt qua MacPort, các tăng sẽ có mặt tại /opt/local/lib,
    nếu cài đặt qua brew, các tăng sẽ có mặt tại /usr/local/Cellar/boost,
    nếu xây dựng bởi chính mình, nó sẽ được ở /usr/local/lib by default hoặc yourBoostLib/stage/lib
Các vấn đề liên quan