我目前在使用具有特定配置的 Premake5.lua 运行我的项目时遇到链接错误问题。
下面是我的Premake5.lua文件中的相关配置:
files { "src/**.cpp", "src/**.hpp" }
但是,当我将配置更改为:
时,一切似乎都正常files { "**.cpp", "**.hpp" }
谁能解释为什么会这样,我该如何解决这个问题?
这里是完整的配置代码:
-- Include conan generate script
include("conanbuildinfo.premake.lua")
-- Script for cleaning workspace
include("cleanWorkspace.lua")
-- Main Workspace
workspace "ImageEditor"
-- Import conan generate config
conan_basic_setup()
-- Project
project "ImageEditorApp"
kind "ConsoleApp"
language "C++"
targetdir "bin/%{cfg.buildcfg}"
objdir "bin/%{cfg.buildcfg}/obj/"
location "src"
debugdir "app"
linkoptions { conan_exelinkflags }
files { "src/**.cpp", "src/**.hpp" }
includedirs { "./bindings" }
filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
filter "configurations:Release"
defines { "NDEBUG" }
optimize "On"
-- Tests
project "ImageEditorTest"
kind "ConsoleApp"
language "C++"
targetdir "bin/%{cfg.buildcfg}"
objdir "bin/%{cfg.buildcfg}/obj/"
location "tests"
debugdir "app"
linkoptions { conan_exelinkflags }
links { "ImageEditor" }
-- Add test files
files { "tests/*.cpp" }
includedirs { "./src","./bindings" }
-- We can also configure Catch through defines
defines "CATCH_CPP11_OR_GREATER"
filter "configurations:Debug"
defines { "DEBUG" }
symbols "On"
filter "configurations:Release"
defines { "NDEBUG" }
optimize "On"
和我的文件夹结构:
.gitignore
| cleanWorkspace.lua
| conan.lock
| conanbuildinfo.premake.lua
| conanbuildinfo.txt
| conanfile.txt
| conaninfo.txt
| conan_imports_manifest.txt
| graph_info.json
| ImageEditor.sln
| LICENSE
| Makefile
| premake5.lua
| README.md
|
+---app
| Catch2.dll
| Catch2Main.dll
| glew32.dll
| glfw3.dll
| imgui.dll
| imgui.ini
|
+---bin
| \---Debug
| | ImageEditorApp.pdb
| |
| \---obj
| \---Debug
| \---ImageEditorApp
| | ImageEditorApp.exe.recipe
| | ImageEditorApp.log
| | imgui_impl_glfw.obj
| | imgui_impl_opengl3.obj
| | main.obj
| | test_window.obj
| | vc143.idb
| | vc143.pdb
| | Window.obj
| |
| \---ImageEditorApp.tlog
| CL.command.1.tlog
| CL.read.1.tlog
| CL.write.1.tlog
| ImageEditorApp.lastbuildstate
| link-cvtres.read.1.tlog
| link-cvtres.write.1.tlog
| link-rc.read.1.tlog
| link-rc.write.1.tlog
| link.32112-cvtres.read.1.tlog
| link.32112-cvtres.write.1.tlog
| link.32112-rc.read.1.tlog
| link.32112-rc.write.1.tlog
| link.32112.read.1.tlog
| link.32112.read.2.tlog
| link.32112.write.1.tlog
| link.command.1.tlog
| link.read.1.tlog
| link.read.2.tlog
| link.write.1.tlog
| unsuccessfulbuild
|
+---bindings
| imgui_impl_glfw.cpp
| imgui_impl_glfw.h
| imgui_impl_opengl3.cpp
| imgui_impl_opengl3.h
| imgui_impl_opengl3_loader.h
|
+---src
| | ImageEditorApp.vcxproj
| | ImageEditorApp.vcxproj.filters
| | ImageEditorApp.vcxproj.user
| | main.cpp
| |
| \---view
| Window.cpp
| Window.h
|
+---tests
| ImageEditorTest.vcxproj
| ImageEditorTest.vcxproj.user
| test_window.cpp
|
\---vendor
\---premake
premake5.exe
premake5.LICENSE.txt
编辑 我对这些很陌生,如果有人可以提供信息,这个设置应该如何寻找管理项目并为它创建单元测试,我会 aprritate 它。谢谢。