gpt4 book ai didi

c++ - 在 OS X 终端上找不到 -lncurses 的库

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:33 24 4
gpt4 key购买 nike

我是 OS X 上的菜鸟开发者。当我使用 Makefile 编译项目时,出现无法解决的错误。但是我可以在Ubuntu16.04上成功运行这个项目,但是当我把它移到Mac上时就不行了。

这是终端打印:

currychen-MC1:llvm-clang-iMac currychen$ make
g++ -I/usr/include -fno-rtti -O0 -g `/Users/currychen/llvm/llvm3.8-binaries/bin/llvm-config --cxxflags` -I/Users/currychen/llvm/tools/clang/include -I/Users/currychen/llvm/llvm3.8-binaries/tools/clang/include src_clang/rewritersample.cp -lclangAST -lclangAnalysis -lclangBasic -lclangDriver -lclangEdit -lclangFrontend -lclangFrontendTool -lclangLex -lclangParse -lclangSema -lclangEdit -lclangASTMatchers -lclangRewrite -lclangRewriteFrontend -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangSerialization -lclangToolingCore -lclangTooling `/Users/currychen/llvm/llvm3.8-binaries/bin/llvm-config --ldflags --libs --system-libs` -o build/rewritersample
clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk'
ld: library not found for -lcurses
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [build/rewritersample] Error 1"

我的 Makefile 是

LLVM_SRC_PATH := /Users/currychen/llvm
LLVM_BUILD_PATH := /Users/currychen/llvm/llvm3.8-binaries
LLVM_BIN_PATH := $(LLVM_BUILD_PATH)/bin

CXX := g++ -I/usr/include
CXXFLAGS := -fno-rtti -O0 -g

LLVM_CXXFLAGS := `$(LLVM_BIN_PATH)/llvm-config --cxxflags`
LLVM_LDFLAGS := `$(LLVM_BIN_PATH)/llvm-config --ldflags --libs --system-libs`
LLVM_LDFLAGS_NOLIBS := `$(LLVM_BIN_PATH)/llvm-config --ldflags`


CLANG_INCLUDES := \
-I$(LLVM_SRC_PATH)/tools/clang/include \
-I$(LLVM_BUILD_PATH)/tools/clang/include

CLANG_LIBS := \
-lclangAST \
-lclangAnalysis \
-lclangBasic \
-lclangDriver \
-lclangEdit \
-lclangFrontend \
-lclangFrontendTool \
-lclangLex \
-lclangParse \
-lclangSema \
-lclangEdit \
-lclangASTMatchers \
-lclangRewrite \
-lclangRewriteFrontend \
-lclangStaticAnalyzerFrontend \
-lclangStaticAnalyzerCheckers \
-lclangStaticAnalyzerCore \
-lclangSerialization \
-lclangToolingCore \
-lclangTooling

SRC_CLANG_DIR := src_clang
BUILDDIR := build

$(BUILDDIR)/rewritersample: $(SRC_CLANG_DIR)/rewritersample.cp
$(CXX) $(CXXFLAGS) $(LLVM_CXXFLAGS) $(CLANG_INCLUDES) $^ $(CLANG_LIBS) $(LLVM_LDFLAGS) -o $@


.PHONY: clean
clean:
-rm -rf $(BUILDDIR)/*

最佳答案

感谢@Jonathan Leffler 和@Carl Norum。添加 -v 对我了解真正使用了哪些标志非常有帮助。最后我还在 g++ 中添加了一个 -L 让编译器知道 lib 在哪里。所以,如果你已经安装了 libXXX,你应该指定目录让编译器知道。

关于c++ - 在 OS X 终端上找不到 -lncurses 的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37558866/

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