cab*_*013 5 qt mingw poco-libraries
我需要用MinGW编译poco,所以我可以在Qt Creator中使用它,但无法弄清楚如何,我已经设法在Visual Studio中编译poco但我不能在Qt Creator中使用这些库.
有了这个环境:
这是我为MinGW和Windows 7配置和编译Poco的方法:
应用下一个路径以避免copysign错误.(来自https://github.com/pocoproject/poco/issues/57).
在文件C:\ poco-1.4.6\Foundation\include\Poco\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
}
Run Code Online (Sandbox Code Playgroud)
在这里:
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
}
Run Code Online (Sandbox Code Playgroud)在C:\ poco-1.4.6\build\config\MinGW修改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
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
如果您不需要使用加密和SSL,则应删除SYSLIBS行中的-lssl和-lcrypto选项.
无需演示,SSL,加密和ODBC支持即可编译Poco:
$ ./configure --omit=NetSSL_OpenSSL,Crypto,Data/ODBC,Data/MySQL --prefix=./_INSTALL
$ make clean
$ make -j4 -nodemos
$ make install
Run Code Online (Sandbox Code Playgroud)祝好运!
补充塞萨尔的答案(在这里,不是为了格式化目的而添加注释),您的 .pro 文件中需要这样的内容:
INCLUDEPATH += "<path_to_poco_include_dir>"
LIBS += -L"<path_to_poco_lib_dir>" -l<poco_lib> -l<poco_lib>
Run Code Online (Sandbox Code Playgroud)
例如,就我而言,我会这样(用于调试版本):
INCLUDEPATH += "C:/Dev/lib/poco/poco143/Debug/include"
LIBS += -L"C:/Dev/lib/poco/poco143/lib" -lPocoFoundationd -lPocoUtild
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过为调试和发布版本创建设置来对此进行一些改进:
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}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。