Windows 如何获得pcre2的完全静态构建
我正在尝试使用cmake在Windows10上静态构建pcre2。我采取的步骤是:Windows 如何获得pcre2的完全静态构建,windows,cmake,pcre,Windows,Cmake,Pcre,我正在尝试使用cmake在Windows10上静态构建pcre2。我采取的步骤是: md C:\ProgramData\ThirdParty\installed\pcre2 md pcre2 curl https://ftp.pcre.org/pub/pcre/pcre2-10.35.tar.gz -o tmp.tar.gz tar -xf tmp.tar.gz -C pcre2 --strip-components=1 cd pcre2 md build cd build cmake .. -
md C:\ProgramData\ThirdParty\installed\pcre2
md pcre2
curl https://ftp.pcre.org/pub/pcre/pcre2-10.35.tar.gz -o tmp.tar.gz
tar -xf tmp.tar.gz -C pcre2 --strip-components=1
cd pcre2
md build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX="C:\ProgramData\ThirdParty\installed\pcre2" -DBUILD_SHARED_LIBS=OFF -DPCRE2_STATIC=ON -DPCRE2_BUILD_TESTS=OFF -DZLIB_LIBRARY="C:\ProgramData\ThirdParty\installed\zlib\lib\zlibstatic.lib"
cmake --build . --config Release --target install
尽管有这些设置,但如果我正确理解如何构建静态库,那么在尝试链接pcre2-8.lib时会出现未解决的外部符号错误,为了更好地度量,我还包括了pcre2-posix.lib
使用DUMPBIN/SYMBOLS
查看两个lib文件,我猜有一些外部符号指向生成输出的bin目录中的pcre2-8.dll
是否可以使pcre2-8.lib没有外部引用
提前感谢您的时间。它已经是静态的。只需在使用库的项目中包含“PCRE2.h”之前定义宏名PCRE2#u STATIC 像这样:
#define PCRE2_STATIC
#define PCRE2_CODE_UNIT_WIDTH 8
#include "pcre2.h"