我在Windows上使用msys2和mingw64。试图构建一个静态链接的exe,它将运行在msys2之外。 (即在msys2中构建但在外面运行。)
我的一个依赖项是libpcreposix。依赖关系设置如下:
pacman -Syu
pacman -Su
pacman -S base-devel
pacman -S msys2-devel
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-pcre
pacman -S msys2-runtime ?
将gcc
与-lpcreposix
或-lpcreposix.dll
一起使用我继续获得需要两个pcreposix DLL的exe。
解决方法是
set PATH=%PATH%;\msys64\mingw64\bin
nameof.exe
即。扩充msys2外部路径以包含DLL的路径。但我真正想要的是创建一个人们可以按原样运行的exe文件。
我注意到在msys2 shell中,我看到了
$ find / -name \*pcreposix\*
/mingw64/bin/libpcreposix-0.dll
/mingw64/lib/licpcreposix.a
/minw64/lib/libpcreposix.dll.a
....
即。 .a
有libpcreposix
但libpcreposix-0
没有gcc ... -static
。使用libpcreposix
进行编译时,它会找到libpcreposix-0
静态库,但是没有The program can't start because libpcreposix-0.dll is missing from your computer. Try reinstalling the program to fix this problem.
静态库,当我在msys2之外调用exe时,它会显示<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ToolbarTheme"
app:titleTextAppearance="@style/ThemeOverlay.AppCompat.ActionBar"
android:background="@color/colorPrimary"/>
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</android.support.design.widget.AppBarLayout>
这是一个已知问题吗?如果我做错了什么我就不知道它是什么。为什么只有两个库中只有一个的静态版本?