我遇到了同样的问题,Leezi 写的对我来说效果很好。我使用的是1.4.6 版。
我唯一需要做的就是再次编译 Poco 库(因为它是为支持 C++11 的 clang 而编译的):
./configure --config=Darwin64-gcc
make
sudo make install
您可以做的另一种方法是编译具有 C++11 支持的 Poco 库,但这有点复杂。首先,我必须在 Foundation 中修改两个源文件:
基础/src/NumberParser.cpp:
127c127
< return std::sscanf(s.c_str(), "%"I64_FMT"d%c", &value, &temp) == 1;
---
> return std::sscanf(s.c_str(), "%" I64_FMT "d%c", &value, &temp) == 1;
144c144
< return std::sscanf(s.c_str(), "%"I64_FMT"u%c", &value, &temp) == 1;
---
> return std::sscanf(s.c_str(), "%" I64_FMT "u%c", &value, &temp) == 1;
161c161
< return std::sscanf(s.c_str(), "%"I64_FMT"x%c", &value, &temp) == 1;
---
> return std::sscanf(s.c_str(), "%" I64_FMT "x%c", &value, &temp) == 1;
基础/src/DirectoryWatcher.cpp:
51a52
> #include <unistd.h>
我也修改了build/config/Darwin-clang文件:
55,56c55,56
< CXXFLAGS = $(ARCHFLAGS) -Wall -Wno-sign-compare
< LINKFLAGS = $(ARCHFLAGS)
---
> CXXFLAGS = $(ARCHFLAGS) -Wall -Wno-sign-compare -std=c++11 -stdlib=libc++
> LINKFLAGS = $(ARCHFLAGS) -stdlib=libc++
80c80
< SYSLIBS = -ldl
---
> SYSLIBS = -ldl -lstdc++
我只需要静态库,所以我只编译了:
./configure --static --omit=Data --config=Darwin64-clang --poquito -no-tests -no-samples -no-shared
make clean
make
sudo make install
如果您也需要样本和测试,那么我认为您应该制作一个 xcode 项目并进行设置或深入到 makefile 中......我希望这会有所帮助......