Closed oridong closed 3 years ago
-- add_links("Transform3D") 怎么设置是 打开输入文件 libTransform3D.dll 而不是 Transform3D.lib
dll 是没法 link 的。只能 link .dll 对应的导出库 .lib
首先确认代码有没有设置符号导出,有符号导出,才能自动生成dll 对应的 lib 库
然后走 add_deps() 自动关联依赖,会自动 link 对应的 lib
-- add_links("Transform3D") 怎么设置是 打开输入文件 libTransform3D.dll 而不是 Transform3D.lib
dll 是没法 link 的。只能 link .dll 对应的导出库 .lib
首先确认代码有没有设置符号导出,有符号导出,才能自动生成dll 对应的 lib 库
然后走 add_deps() 自动关联依赖,会自动 link 对应的 lib
没有符号导出 该怎么办呢? 只有生成的.dll ,libTransform6D.dll 依赖libTransform3D.dll
-- add_links("Transform3D") 怎么设置是 打开输入文件 libTransform3D.dll 而不是 Transform3D.lib
dll 是没法 link 的。只能 link .dll 对应的导出库 .lib 首先确认代码有没有设置符号导出,有符号导出,才能自动生成dll 对应的 lib 库 然后走 add_deps() 自动关联依赖,会自动 link 对应的 lib
没有符号导出 该怎么办呢? 只有生成的.dll ,libTransform6D.dll 依赖libTransform3D.dll
自己去 msdn 或者 google 上看下 如何导出符号,这个是自身代码和 msvc 的问题,跟 xmake 没啥关系
xmake可以导出全部符号,但这一行为不一定是你想要的:
add_rules("utils.symbols.export_all")
自己的库,最好自己代码里面手动导出
win10
xmake v2.5.5+202107010703, vscode-xmake 1.4.5 vscode 终端报错: checking for Microsoft Visual Studio (x64) version ... 2017 [ 50%]: linking.release libTransform3D.dll [ 50%]: linking.release libTransform6D.dll error: LINK : fatal error LNK1181: 无法打开输入文件“Transform3D.lib”
xmake.lua文件主要内容
target("libTransform3D") set_kind("shared") add_files("Euclidean3D/Transform3D.cpp") -- 这个在 ../xmake_target 中生成了 libTransform3D.dll 动态库
target("libTransform6D") set_kind("shared") add_files("Spatial6D/Transform6D.cpp") add_links("Transform3D") add_linkdirs("../xmake_target") -- 报错: error: LINK : fatal error LNK1181: 无法打开输入文件“Transform3D.lib” -- add_links("Transform3D") 怎么设置是 打开输入文件 libTransform3D.dll 而不是 Transform3D.lib