有没有一种方法可以运行使用SDL2和SDL2映像的C ++可执行文件,而在存储库中没有dll文件?

问题描述 投票:0回答:1

[我使用LazyFoo网站上的Makefile在VS Code中编译了代码,对其进行了一些更改(当然没有碰到标志,如下所示:

#OBJS specifies which files to compile as part of the project
OBJS = *.cpp

#CC specifies which compiler we're using
CC = g++

#INCLUDE_PATHS specifies the additional include paths we'll need
INCLUDE_PATHS = -IC:\mingw_dev_lib\include\SDL2

#LIBRARY_PATHS specifies the additional library paths we'll need
LIBRARY_PATHS = -LC:\mingw_dev_lib\lib

#COMPILER_FLAGS specifies the additional compilation options we're using
# -w suppresses all warnings
# -Wl,-subsystem,windows gets rid of the console window
COMPILER_FLAGS = -w -Wl,-subsystem,windows

#LINKER_FLAGS specifies the libraries we're linking against
LINKER_FLAGS = -lmingw32 -lSDL2main -lSDL2 -lSDL2_image

#OBJ_NAME specifies the name of our exectuable
OBJ_NAME = output

#This is the target that compiles our executable
all : $(OBJS)
    $(CC) $(OBJS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(COMPILER_FLAGS) $(LINKER_FLAGS) -o $(OBJ_NAME)

代码似乎已编译(编译时没有编译错误,如“没有这样的文件或目录”错误,但是当我运行可执行文件时,却得到了此]

Error code when running exe file

现在,我可以将dll文件添加到此C ++代码所在的目录中,但这会使它混乱。我想这样做,以便exe文件或其他文件知道dll文件在我的PC上的位置,这方便地不在我的工作区目录中。

c++ sdl-2
1个回答
0
投票

好吧,以为人们(包括我)起初并不理解这个问题。我主要担心的是,我无法运行代码编译后生成的.exe文件。我已经链接到相关目录,该目录存储了所有标头以及.lib和.dll文件。在工作目录中没有.dll文件的情况下,我无法<.run>解决方法是,我将.dll文件添加到Windows文件夹中。我在Internet上的某个地方(不记得在哪里)读到它,Windows会在Windows文件夹中查找此类文件以运行可执行文件,我想它们是正确的。

© www.soinside.com 2019 - 2024. All rights reserved.