标签: mingw

MinGW .exe需要几个gcc dll而不管代码是什么?

在使用MinGW进行编译时,我必须在运行exe之前从MinGW bin目录复制某些dll文件(即使使用"-static"和/或"-static-libstdc ++").如何更改?我必须使用MinGW的特殊版本吗?最终我希望能够在目录中运行除了exe之外的程序(并且没有设置windows环境变量).这些文件是:

  • 的libstdc ++ - 6.dll
  • libgcc_s_seh-1.DLL
  • libwinpthread-1.DLL

以下是我休闲的完整步骤列表:

  1. 打开代码::块
  2. 选择"文件 - >新建 - >项目 - >控制台"
  3. 填写项目"Hello World"的项目设置
  4. 右键单击Project-> Build Options ...-> Hello World(Root target) - > Other Options
  5. 在已设置的"-fexceptions"下输入"-static"(或"-static-libstdc ++")
  6. CTRL-F9:构建项目(不执行)
  7. 在Windows资源管理器中导航到运行构建的"Hello World.exe"文件.
  8. 当消息弹出"错误:您的计算机缺少libstdc ++ - 6.dll"时,单击"确定".
  9. 将"libstdc ++ - 6.dll"从/ MinGW/bin /目录复制到"Hello World.exe"目录中.
  10. 运行"Hello World.exe"
  11. 单击"确定"以显示"错误:计算机中缺少libgcc_s_seh-1.dll"消息.
  12. 将"libgcc_s_seh-1.dll"复制到"Hello World.exe"目录中.
  13. 重复并最终复制"libwinpthread-1.dll".
  14. 查看邮件

    Hello World!
    
    Run Code Online (Sandbox Code Playgroud)

编辑: 我的命令行是:

g++.exe -Wall -fexceptions -static -static-libgcc -static-libstdc++ -g -static-libgcc -static-libstdc++ -L. -c "C:\Users\______\Desktop\Hello World\main.cpp" -o obj\Debug\main.o
g++.exe -o "bin\Debug\Hello World.exe" obj\Debug\main.o
Run Code Online (Sandbox Code Playgroud)

需要上面提到的所有dll文件.并且,为了安全起见,代码是:

// …
Run Code Online (Sandbox Code Playgroud)

c++ dll mingw

53
推荐指数
2
解决办法
5万
查看次数

为Cygwin启用本机NTFS符号链接

最近的NTFS和Windows实现了符号链接:

  • NTFS连接点可以用作目录符号链接,因为NTFS 3.0(Windows 2000)使用linkdjunction工具.
  • 自Windows Vista使用mklink工具以来,NTFS符号链接也可用作符号链接(用于文件和目录).

但是在Cygwin 1.7(安装在Windows 7上)上,ln -s创建了一个文本文件.

在Cygwin上:

$ ln -s -v target mylink
`mylink' -> `target'
Run Code Online (Sandbox Code Playgroud)

在MinGW(或你最喜欢的编辑):

$ cat mylink
!<symlink>ÿþt a r g e t 
Run Code Online (Sandbox Code Playgroud)

是否有可能告诉Cygwing使用NTFS交接点NTFS符号链接

其他问题:MinGW上有这个吗?

symlink cygwin ntfs mingw ln

49
推荐指数
2
解决办法
2万
查看次数

如何将char*转换为wchar_t*?

我试过实现这样的函数,但不幸的是它不起作用:

const wchar_t *GetWC(const char *c)
{
    const size_t cSize = strlen(c)+1;
    wchar_t wc[cSize];
    mbstowcs (wc, c, cSize);

    return wc;
}
Run Code Online (Sandbox Code Playgroud)

我的主要目标是能够在Unicode应用程序中集成普通的char字符串.我们非常感谢您提供的任何建议.

c++ unicode winapi mingw type-conversion

48
推荐指数
3
解决办法
16万
查看次数

如何在Windows 7中安装pywin32模块

我正在尝试安装pywin32.我从sourceforge.net下载了它.我跑的时候

setup.py install
Run Code Online (Sandbox Code Playgroud)

它显示"无法找到vcvarsall.bat".我用Google搜索,发现我必须安装MinGW并设置路径然后运行

python setup.py build --compiler=mingw32
Run Code Online (Sandbox Code Playgroud)

但它正在显示

Can't find a version in Windows.h
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?(我安装了Visual Studio 2010 Ultimate的试用版,并安装了MinGW C和C++编译器.操作系统:Windows 7.)

任何人都可以告诉我从哪里下载已经在MinGW中编译的Python二进制文件的源代码,所以我不必这么做.或者,如果我可以获得已经拥有Windows模块的python.

c python compiler-construction mingw pywin32

47
推荐指数
3
解决办法
16万
查看次数

如何在mingw中进行libwinpthread-1.dll的静态链接?

我从这里使用mingw: http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.7.2/32-bit/threads-posix/sjlj/x32-4.7.2-release-posix-sjlj-rev2.7z/download

而且我已经成功地设法通过静态链接libstdc++-6.dlllibgcc_s_sjlj-1.dll使用-static-libgcc -static-libstdc++参数,但我无法找到执行相同操作的命令libwinpthread-1.dll.

c++ mingw static-linking

47
推荐指数
6
解决办法
5万
查看次数

MinGW链接器错误:winsock

我在Windows上使用MinGW编译器来编译带有套接字的C++应用程序.我的链接命令如下:

g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot of object files }
Run Code Online (Sandbox Code Playgroud)

而我也试过了

g++.exe -Wall -Wno-long-long -pedantic -lws2_32 -o dist/Windows/piskvorky { there are a lot of object files }
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下我都会收到此错误:

build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0x33): undefined reference to `closesocket@4'
build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0xd0): undefined reference to `send@16'
build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0x1ee): undefined reference to `recv@16'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x184): undefined reference to `WSAStartup@8'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1a5): undefined reference to `closesocket@4'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1cb): undefined reference to `closesocket@4'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1d3): undefined reference to `WSACleanup@0'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x6fe): undefined reference to `bind@12'
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x724): undefined reference to `listen@8' …
Run Code Online (Sandbox Code Playgroud)

c++ linker mingw winsock

46
推荐指数
2
解决办法
9万
查看次数

使用gcc mingw嵌入二进制blob

我试图将二进制blob嵌入到exe文件中.我正在使用mingw gcc.

我像这样制作目标文件:

ld -r -b binary -o binary.o input.txt
Run Code Online (Sandbox Code Playgroud)

然后我看objdump输出来获取符号:

objdump -x binary.o
Run Code Online (Sandbox Code Playgroud)

它给出了符号:

_binary_input_txt_start
_binary_input_txt_end
_binary_input_txt_size
Run Code Online (Sandbox Code Playgroud)

然后我尝试在我的C程序中访问它们:

#include <stdlib.h>
#include <stdio.h>

extern char _binary_input_txt_start[];

int main (int argc, char *argv[])
{
    char *p;
    p = _binary_input_txt_start;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

然后我这样编译:

gcc -o test.exe test.c binary.o
Run Code Online (Sandbox Code Playgroud)

但我总是得到:

undefined reference to _binary_input_txt_start
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

c binary gcc mingw

45
推荐指数
3
解决办法
1万
查看次数

CreateProcess:没有这样的文件或目录

每当我尝试在其安装目录(E:\MinGW\bin)之外运行GCC时,我都会收到此错误.

所以,让我说我在,E:\code并有一个名为的文件one.c.跑步: gcc one.c -o one.exe会给我这个错误:

gcc: CreateProcess: No such file or directory
Run Code Online (Sandbox Code Playgroud)

唯一的解决方法是导航到其安​​装目录,从那里运行gcc,并指定所有其他路径.我的环境变量Path包含E:\MinGW\bin.

有什么建议来解决这个问题?我正在运行Windows XP SP3.

c gcc mingw

45
推荐指数
6
解决办法
13万
查看次数

如何使用MinGW编译makefile?

我是新手,想知道如何使用C语言中的MinGW编译器编译makefile.am.我是否必须将所有文件保存在MinGW\bin中?因为现在我的文件在不同的目录中.

感谢帮助.

c compiler-construction mingw makefile

45
推荐指数
4
解决办法
15万
查看次数

从MinGW静态库(.a)到Visual Studio静态库(.lib)

我正在尝试使用xlsLib从C++应用程序创建Excel电子表格.

麻烦的是编译xlsLib,我给了一个.a文件(由MinGW生成的GCC静态库).但是,我的应用程序依赖于另一个PhysX仅使用Visual Studio编译的API().

因此:是否可以将GCC静态库(xlslib.a)转换为Visual Studio静态库文件(xlslib.lib)?

static mingw visual-studio

44
推荐指数
2
解决办法
5万
查看次数