gpt4 book ai didi

c++ - 在 Eclipse(或 Xcode)中链接 Boost 程序选项

转载 作者:行者123 更新时间:2023-11-30 04:28:13 26 4
gpt4 key购买 nike

我放弃了在 Xcode 中链接到 Boost 程序选项,因为我无法让它工作。我想出了如何识别 header ,但我不太熟悉如何在 Xcode 中设置要链接到的库的路径。

我去年在大学里使用了 Boost 和 Eclipse,所以我认为如果我在这个项目中只使用 Eclipse,我会更容易解决问题。我的程序看起来很像他们提供的示例 (first.cpp)。如果您觉得需要查看源代码,我已将其加载到 github .

别担心,我在/usr/local/boost 中安装了 Boost:

new-host-2:$ ls | grep program_options
libboost_program_options.a
libboost_program_options.dylib
new-host-2:$ pwd
/usr/local/boost_1_49_0/stage/lib

我在 Project > Properties > C/C++ General > Paths & Symbols 下通过以下方式为 Boost 配置了我的项目设置:包括:/usr/local/boost_1_49_0/库:boost_program_options库路径:/usr/local/boost_1_49_0/stage/lib

基于 Eclipse 控制台,你会认为它链接正确,因为我最后得到这个输出:

Building target: FizzBuzz
Invoking: Cross G++ Linker
g++ -L/usr/local/boost_1_49_0/stage/lib -o "FizzBuzz" ./Fizzbuzz.o ./main.o -lboost_program_options
Finished building target: FizzBuzz


**** Build Finished ****

但是,当我去运行我的程序时,我得到一个对话框,上面写着:“无法启动”选择无法启动,并且最近没有启动。

我尝试从命令行运行它,但没有成功:

new-host-2:$ ./FizzBuzz 
dyld: Library not loaded: libboost_program_options.dylib
Referenced from: /Users/per001/Documents/workspace/FizzBuzz/Debug/./FizzBuzz
Reason: image not found
Trace/BPT trap: 5

如何设置它以在 Eclipse 中正确链接?或者更好的是,Xcode?

最佳答案

我已设法从指定的 github 存储库链接并运行您的代码。

这是一个过程,因为我的处理方式有所不同。

首先我在我的 mac boost 上重新安装如下。

  1. 我已经从 here 安装了最新的 macport .

  2. 然后我安装了最新的命令行工具,因为我有 xcode 4.3,命令行工具不再作为默认值从 here 附带。 .

  3. 之后我按如下方式安装了 boost:

    sudo port install boost

    这里我遇到了一些问题,因为 Xcode 与以前的位置不同,所以我必须执行以下命令来解决这个问题:

    sudo xcode-select -switch /Applications/Xcode.app

    为了验证这是否完成了工作,我执行了以下操作:

    xcode-select -print-path

    我得到预期结果的地方:/Applications/Xcode.app

    此后文件的位置如下:

    macpro:local ervinbosenbacher$ locate libboost_program_options.a
    /opt/local/lib/libboost_program_options.a

    macpro:local ervinbosenbacher$ locate program_options
    /opt/local/include/boost/program_options
    /opt/local/include/boost/program_options/cmdline.hpp
    /opt/local/include/boost/program_options/config.hpp
    /opt/local/include/boost/program_options/detail
    ...
  4. 在此之后,我启动了 XCode 并创建了一个全新的项目,并将您的代码文件包含在该项目中。

  5. 修改设置如下:

    Build Settings->All->Search Paths->Always Search User Paths: Yes.

    Build Settings->All->Search Paths->Library Search Paths->Debug->Any Architecture|Any SDK:/opt/local/lib
    Build Settings->All->Search Paths->Library Search Paths->Release->Any Architecture|Any SDK:/opt/local/lib

    Build Settings->All->Search Paths->User Header Search Paths->Debug->Any Architecture|Any SDK:/opt/local/include
    Build Settings->All->Search Paths->User Header Search Paths->Release->Any Architecture|Any SDK:/opt/local/include

    Build Settings->All->Linking->Other Linking Flags->Debug->Any Architecture|Any SDK: -lboost_program_options
    Build Settings->All->Linking->Other Linking Flags->Release->Any Architecture|Any SDK: -lboost_program_options

然后我就成功地从 Xcode 构建并运行了应用程序:

Allowed options:
--help produce help message
--begnum arg set beginning number
--endnum arg set ending number
--fizznum arg set fizznum (default: 3)
--buzznum arg set buzznum (default: 5)
--fizzword arg set fizzword (default "Fizz"
--buzzword arg set buzzword (default "Buzz"

关于c++ - 在 Eclipse(或 Xcode)中链接 Boost 程序选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10325635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com