我很想说我有一个问题,但实际上这一切都变得一团糟。
我试图用c++写一些脚本来练习语言的使用,我试图使用boost/program_options来处理我的脚本参数。(我来自MacOS索诺马)
我用brew和从网站上下载了这个库,然后我将库添加到VSCode IncludePath选项中。(对于brew版本,我放/opt/homebrew/Cellar/boost/1.82.0_1/include/
,对于zip版本,我放/Users/micle/Downloads/boost_1_83_0/
)
我当然没有把它们加在一起。我先试了一个,然后用另一个。
对于这两个人,我遇到了同样的问题:
- 当我包含库时,intellisense工作并帮助我查找正确的头文件(boost/program_options.hpp),但当我使用run按钮运行它时,编译失败,告诉我
'boost/program_options.hpp' file not found
- 当我尝试使用
g++ prove.cpp -std=c++17
命令编译时,我得到了这样的结果:
"boost::program_options::options_description::add_options()", referenced from:
_main in prove-8fbb56.o
"boost::program_options::options_description::m_default_line_length", referenced from:
_main in prove-8fbb56.o
"boost::program_options::options_description::options_description(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned int, unsigned int)", referenced from:
_main in prove-8fbb56.o
"boost::program_options::options_description_easy_init::operator()(char const*, char const*)", referenced from:
_main in prove-8fbb56.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我将这个库添加到c++ include路径中,从我的.zshrc开始,使用以下行:export CPLUS_INCLUDE_PATH="/Users/micle/Downloads/boost_1_83_0/:$CPLUS_INCLUDE_PATH"
我做错了什么?
1条答案
按热度按时间0qx6xfy61#
最后,我终于解决了这个问题,感谢@TedLyngmo。我重新安装了brew版本的库,并使用
g++ prove.cpp -std=c++17 -L/opt/homebrew/Cellar/boost/1.82.0_1/lib -lboost_program_options
进行编译开始学习makefile,不用每次都写。谢谢你,谢谢