永发信息网

怎么让MinGW 默认链接时带

答案:1  悬赏:80  手机版
解决时间 2021-03-17 14:21
  • 提问者网友:兔牙战士
  • 2021-03-16 18:27
怎么让MinGW 默认链接时带
最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-03-16 19:44
想让 MinGW 在编译时默认静态链接,编译出的exe不依赖其他dll运行,在编译时不用加上 -static参数,而是让其自动带上这一参数...同时动态时编译std::thread会出问题:

  H:\c++>g++ std.thread.cpp -std=c++11

H:\c++>a.exe
terminate called after throwing an instance of 'std::system_error'
what(): Enable multithreading to use std::thread: Operation not permitted

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

H:\c++>g++ std.thread.cpp -std=c++11 -static

H:\c++>a.exe can run now

下面是MinGW configure时的参数:
  H:\c++>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=h:/app/mingw32/bin/../libexec/gcc/i686-w64-mingw32/4.9.0/lto
-wrapper.exe
Target: i686-w64-mingw32
Configured with: /mnt/build/src/gcc/configure --host=i686-w64-mingw32 --build=x8
6_64-linux-gnu --target=i686-w64-mingw32 --with-sysroot=/mnt/build/mingw32mingw3
2/mingw32 --prefix=/mnt/build/mingw32mingw32/mingw32 --with-gmp=/mnt/build/prere
q/i686-w64-mingw32/install --with-mpfr=/mnt/build/prereq/i686-w64-mingw32/instal
l --with-mpc=/mnt/build/prereq/i686-w64-mingw32/install --with-cloog=/mnt/build/
prereq/i686-w64-mingw32/install --disable-cloog-version-check --with-isl=/mnt/bu
ild/prereq/i686-w64-mingw32/install --enable-cloog-backend=isl --with-host-libst
dcxx='-static -lstdc++ -lm' --enable-shared --enable-static --enable-threads=pos
ix --enable-plugins --disable-multilib --enable-languages=c,lto,c++ --enable-lib
gomp --disable-dw2-exceptions --enable-sjlj-exceptions --enable-fully-dynamic-st
ring --enable-libstdcxx-time --disable-nls --disable-werror --enable-checking=re
lease --with-gnu-as --with-gnu-ld --disable-win32-registry --disable-rpath --dis
able-werror --with-libiconv-prefix=/mnt/build/prereq/i686-w64-mingw32/install --
with-pkgversion=4.8-stdthread-edu CC= CFLAGS='-O2 -march=nocona -mtune=core2 -fo
mit-frame-pointer -momit-leaf-frame-pointer' CXXFLAGS='-O2 -march=nocona -mtune=
core2 -fomit-frame-pointer -momit-leaf-frame-pointer' LDFLAGS=' -Wl,--large-addr
ess-aware' 'BOOT_CFLAGS=-O2 -march=nocona -mtune=core2 -fomit-frame-pointer -mom
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯