我需要编译POCO使用MinGW,所以我可以在Qt Creator中使用它,但无法弄清楚如何,我已经成功地编译在Visual Studio POCO,但我不能使用Qt Creator中那些库。
Answer 1:
补充塞萨尔的回答(在这里,而不是添加注释,用于格式化),你需要这样的事情在你的.pro文件:
INCLUDEPATH += "<path_to_poco_include_dir>"
LIBS += -L"<path_to_poco_lib_dir>" -l<poco_lib> -l<poco_lib>
例如,在我的情况,我也有这个(建立调试):
INCLUDEPATH += "C:/Dev/lib/poco/poco143/Debug/include"
LIBS += -L"C:/Dev/lib/poco/poco143/lib" -lPocoFoundationd -lPocoUtild
然后,您可以细化此一点,通过创建调试和发布版本的设置:
LIB_HOME = "C:/Dev/lib/"
POCO_HOME = $${LIB_HOME}poco/poco143/
# SEE http://www.qtcentre.org/threads/23655-Does-Qt-Creator-understand-debug-release-scopes-in-pro-files
# OR http://www.qtcentre.org/threads/30430-How-to-set-pro-file-about-debug-and-release
####
CONFIG(debug, debug|release) {
CONFIG -= debug release
CONFIG += debug
}
CONFIG(release, debug|release) {
CONFIG -= debug release
CONFIG += release
}
####
debug {
POCO_DEBUG = d
POCO_PATH = $${POCO_HOME}Debug
}
release {
POCO_DEBUG =
POCO_PATH = $${POCO_HOME}Release
}
INCLUDEPATH += "$${POCO_PATH}/include"
LIBS += -L"$${POCO_PATH}/lib" -lPocoFoundation$${POCO_DEBUG} -lPocoUtil$${POCO_DEBUG}
希望这可以帮助。
Answer 2:
有了这个环境:
- MinGW的(GCC 4.7.0)+ MSYS
- 波科1.4.6(下载5 febrery 2013)
这是我如何配置和编译波科(MinGW版本)和Windows 7:
- 提取波科到您选择的文件夹。 C:/这个例子。
应用下一个路径,以避免复制符号错误。(从https://github.com/pocoproject/poco/issues/57 )。
在文件C:\ POCO-1.4.6 \基金会\包括\波科\ FPEnvironment_DUMMY.h
删除字符串的std ::这个方法:
inline float FPEnvironmentImpl::copySignImpl(float target, float source) { #if defined(__APPLE__) || defined(POCO_ANDROID) return copysignf(target, source); #else return /*std::*/copysignf(target, source); #endif }
这里太:
inline double FPEnvironmentImpl::copySignImpl(double target, double source) { #if defined(__APPLE__) || defined(POCO_ANDROID) return copysign(target, source); #else return /*std::*/copysign(target, source); #endif }
修改MinGW的配置在C:\ POCO-1.4.6 \ build中\设置\ MinGW的。 (从http://cidebycide.blogspot.com.es/2012/06/building-poco-c-witn-mingw.html )
您应该删除行-mno-cygwin的字符串:
SHLIB = $(CXX) -shared -mno-cygwin -o $@ -Wl,--out-implib=$(dir $@)$(subst cyg,lib,$(basename $(notdir $@))).a
和
SYSFLAGS = -mno-cygwin -D_WIN32 -DMINGW32 -DWINVER=0x500 -DPOCO_NO_FPENVIRONMENT -DPCRE_STATIC -DPOCO_THREAD_STACK_SIZE -DFoundation_Config_INCLUDED -I/usr/local/include -I/usr/include
如果您不需要使用加密和SSL,您应该删除的选项-lssl,并在SYSLIBS线-lcrypto。
没有演示,SSL加密和ODBC支持编译波科:
$ ./configure --omit=NetSSL_OpenSSL,Crypto,Data/ODBC,Data/MySQL --prefix=./_INSTALL $ make clean $ make -j4 -nodemos $ make install
祝好运!
Answer 3:
使用MinGW构建POCO不应该是一个大问题,它已经在过去所做的,但核心开发人员没有动力(不是我们的“痒”),并没有任何人抱怨最多的步骤,以拥有和维护MinGW的建设; 我们最好比别人欢迎服用这种作用更多。 任何有兴趣的可以联系我。
Answer 4:
有可能是错误如下:
条:“/Learn/POCO/poco-1.4.6p2/lib/MinGW/ia32/libPocoFoundation.dll.exe”:没有这样的文件
我们可以通过解决变线问题文件“建立\规则\全球”
STRIPCMD = $(STRIP) $@$(BINEXT)
至
STRIPCMD = $(STRIP) $@$
Answer 5:
有一个MSYS2包提供安装所需的电流的一切(在写作的时候)POCO C ++库1.9.0。
- 要安装这个包,你首先需要从下载和安装MSYS2 msys2.org
- 用
pacman
(它们集成在Arch Linux的packag管理器的端口),你可以找出你想要安装的POCO C ++包:pacman -Ss poco
让你包的列表,POCO是名称的一部分。 这可能看起来如下:
$ pacman -Ss poco
mingw32/mingw-w64-i686-poco 1.9.0-1
POrtable COmponents C++ Libraries (mingw-w64)
mingw64/mingw-w64-x86_64-poco 1.9.0-1
POrtable COmponents C++ Libraries (mingw-w64)
- 我想安装一个名为64位包
mingw64/mingw-w64-x86_64-poco
,因此用来吃豆子进行安装:
$ pacman -S mingw64/mingw-w64-x86_64-poco
这将安装,但预建,POCO C ++的动态版本。 在我的系统中,库降落在msys2的安装目录
-
C:\msys64\mingw64\bin
(DLL文件来这里) -
C:\msys64\mingw64\lib
(.A来到这里)
-