与 Poco Net 的链接错误
Linking error with Poco Net
我试图使用 POCO 库构建一些代码。
当我尝试构建时,我得到以下内容
Undefined symbols for architecture x86_64:
"Poco::Net::SocketAddress::SocketAddress(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned short)", referenced from:
.....
ld: symbol(s) not found for architecture x86_64
现在这里有一个问题:我正在链接-lPocoFoundation -lPocoNet -lPocoUtil
我错过了什么?
(我应该说我在Mac OS X 10.8.2<</p>
我有同样的问题。我发现更改 xcode 构建设置很有用。将C++标准库从libc++(LLVM C++支持C++11的标准库)更改为libstdc++(GNU C++标准库)。然后它将通过建筑物。
我遇到了同样的问题,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;
Foundation/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 项目并设置它或深入制作文件......我希望这有帮助...
相关文章:
- 静态数据成员的问题-修复链接错误会导致编译器错误
- Visual Studio mkl_link_tool.exe链接错误
- C++ 实现模板单例类时出现链接错误
- 使用类模板的方法链接错误
- MySQL C++连接器链接错误
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- 运行 C++ 单元测试时LNK2005链接错误
- 对 CMake 中'cudaRegisterLinkedBinary'链接错误的未定义引用?
- 链接错误,包括我创建的相同头文件 - C++
- 在Embarcadero C++ Builder中生成的DLL未解决的外部链接错误
- 使用标头保护的多个定义链接错误
- 链接错误:未定义对 stdscr 和 wgetch 的引用
- 使用 Vivek 的 Vcam / 捕获源过滤器构建/链接错误
- 升压program_options中的链接错误
- 使用 g++ 预处理器进行替换会导致链接错误
- 在调试配置中编译工作正常,但发布会给出链接错误
- 相邻矩阵设置链接错误
- 包含常量变量并包含在多个文件中的标头的链接错误
- C++链接错误,我理解但无法解决
- 是什么导致macOS Mojave上的GoogleTest链接错误