kind "SharedLib"
language "C++"
defines "DLL_EXPORT"
targetname "read_cad_file"
targetextension ".arx"
我正在使用objectARX开发,我想使用 premake5 和 vs2015 编译我的项目。脚本中的一些设置如上所述。 在此设置下,在属性 - > C / C ++ - >代码生成 - >运行时库中,运行时库为多线程调试(/ MTd)。 我想问一下如何使用premake5将其更改为多线程DLL(/ MD)?非常感谢:)
答案 0 :(得分:1)
答案 1 :(得分:0)
我不知道运行时的静态版本或DLL版本。但调试和发布应该可以通过runtime
关键字进行切换。参见:
答案 2 :(得分:0)
configuration "Debug"
buildoptions "/MDd"
configuration "Release"
buildoptions "/MD"
configuration {}
答案 3 :(得分:0)
所以,我的项目不是共享库,而是一个exe。
我在“过滤器”部分添加了以下内容:
filter "configurations:Debug"
architecture "x86_64"
links {"libprotobufd"}
defines {"DEBUG"}
symbols "On"
libdirs { baseLibPath .. "debug" } -- baseLibPath was defined elsewhere
postbuildcommands {}
debugdir "$(TargetDir)"
flags {"staticruntime"} -- this is what worked for me
我不确定是否能解决您的问题,但您可以尝试一下吗?
我还是个新手,所以要加一点盐。
答案 4 :(得分:0)
为了在 premake 中更改运行时库,您需要使用两个关键字 - staticruntime
和 runtime
。
在预编译中使用 /MT:
staticruntime "on"
runtime "Release"
在预制作中使用 /MTd:
staticruntime "on"
runtime "Debug"
在预制作中使用 /MD:
staticruntime "off"
runtime "Release"
在预编译中使用 /MDd:
staticruntime "off"
runtime "Debug"
答案 5 :(得分:-1)
project "read_cad_file"
kind "SharedLib"
language "C++"
defines "DLL_EXPORT"
targetname "read_cad_file"
targetextension ".arx"
files "*.cpp"
files "*.def"
files "*.lua"
sysincludedirs "../../../third_party/object_arx/inc-x64/"
sysincludedirs "../../../third_party/object_arx/inc/"
includedirs "../../../third_party/object_arx/inc/"
includedirs "../../../third_party/object_arx/inc-x64/"
libdirs "../../../third_party/object_arx/lib-x64/"
links "ac1st22.lib"
links "acad.lib"
links "accore.lib"
links "acdb22.lib"
links "acge22.lib"
links "acgiapi.lib"
links "acui22.lib"
links "adui22.lib"
links "advapi32.lib"
links "rxapi.lib"
这是完整的预制文件。