Closed Ultraman95 closed 5 years ago
xmake v2.2.5新特性详解 按照这篇文章提示操作,无法安装自动安装simdjson
手动使用vcpkg 安装没有问题
请加 -v -D 给我看下详细错误信息
$ xmake f -c -v -D
$ xmake -v -D
xmake f -a x86 -v -D checking for the vswhere.exe ... C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe checking for the cl.exe ... ok checking for the Microsoft Visual Studio (x86) version ... 2017 checking for the unzip ... ok checking for the git ... ok checking for the gzip ... ok checking for the tar ... ok checking for the ping ... ok pinging for the host(gitee.com) ... 24 ms pinging for the host(gitlab.com) ... 342 ms pinging for the host(github.com) ... 65535 ms finding simdjson from vcpkg .. checking for the vcpkg directory ... E:\Program Files\vcpkg checking for the vcpkg::simdjson ... no note: try installing these packages (pass -y to skip confirm)? in vcpkg: -> vcpkg::simdjson please input: y (y/n) y installing simdjson from vcpkg .. error: C:\Program Files (x86)\xmake/core/base/os.lua:705: cannot install package(simdjson) for arch(x86)! stack traceback: [C]: in function 'error' [C:\Program Files (x86)\xmake/core/base/os.lua:705]: in function 'raise' [...\xmake\modules\package\manager\vcpkg\install_package.lua:57]: in function '_install_package' [... (x86)\xmake\modules\package\manager\install_package.lua:113]: [C:\Program Files (x86)\xmake/core/package/package.lua:948]: in function 'script' [...6)\xmake\actions\require\impl\action..\utils\filter.lua:123]: in function 'call' [...iles (x86)\xmake\actions\require\impl\action\install.lua:159]:
=> install vcpkg::simdjson .. failed error: C:\Program Files (x86)\xmake/core/base/os.lua:705: C:\Program Files (x86)\xmake/core/base/os.lua:705: install failed!stack traceback:
[C]: in function 'error'
C:\Program Files (x86)\xmake/core/base/os.lua:705: in function 'raise'
...iles (x86)\xmake\actions\require\impl\action\install.lua:257: in function 'catch'
C:\Program Files (x86)\xmake\core\sandbox\modules\try.lua:109: in function 'try'
...iles (x86)\xmake\actions\require\impl\action\install.lua:143: in function 'install'
...ogram Files (x86)\xmake\actions\require\impl\package.lua:595: in function <...ogram Files (x86)\xmake\actions\require\impl\package.lua:522>
E:\Experiment\C++\test
xmake f -a x64 -v -D
这个好像就可以
好像关于x86 相关的vcpkg都无法正确使用了,xmake2.2.5
你手动通过vcpkg安装x86可以么?
你先直接手动执行下vcpkg命令装下x86试试,如果可以装上,可以帮忙调下 https://github.com/xmake-io/xmake/blob/master/xmake/modules/package/manager/vcpkg/install_package.lua
等回头有时间了,我再看看
手动用vcpkg安装没有问题
如何调试那个lua脚本
能提供一个vscode的调试方式吗?这样就好了
不需要vscode,你只要到你的xmake安装目录下,用编辑器编辑 xmake/modules/package/manager/vcpkg/install_package.lua 脚本,里面加点 print 调调就行了,就只要调试这一个脚本文件,没必要上调试器。。
你可以用vscode打开编辑。
vscode好像没办法单独调试这个脚本,不过用xmake l这个命令可以
恩 你可以直接执行:xmake l package.manager.install_package vcpkg::simdjson
去安装测试,也可以在工程里面执行xmake编译的时候,去执行到此块的逻辑。
if opt.arch ~= os.arch() then
raise("cannot install package(%s) for arch(%s)!", name, opt.arch)
end
这句有问题,我的机器是x64的,但是我要安装x86的库,所以这句判断是否可以去掉
还有就是框架中是不是其他地方也有类似这样的判断
如果可以用vscode调试就更好了,否则只能通过print来调试
还有个问题 我下载xmake的源码,然后在core目录下执行xmake,就可以把xmake编译出来了 这个软件的原理是不是使用这个编译出来的xmake去调用xmake目录下的lua脚本?
以后能在core目录下面提供一份可以生成vs2017工程的脚本,最好生成的vs工程能包含所有用到的.h和.c文件,这样如果在windows上有问题,我们自己也可以调试,排查问题了
还有个问题 我下载xmake的源码,然后在core目录下执行xmake,就可以把xmake编译出来了 这个软件的原理是不是使用这个编译出来的xmake去调用xmake目录下的lua脚本?
是的,调用安装目录下对应的lua脚本
以后能在core目录下面提供一份可以生成vs2017工程的脚本,最好生成的vs工程能包含所有用到的.h和.c文件,这样如果在windows上有问题,我们自己也可以调试,排查问题了
首先,调试这个vcpkg的install_package.lua安装逻辑,不涉及c代码,所以你不需要自己下载源码重编译xmake可执行文件,也没必要生成vs工程去调试xmake的可执行文件。
只需要编辑xmake安装目录下install_package.lua的脚本文件,加print调试即可,不涉及也没必要涉及各种ide环境。
除非xmake在执行过程遇到崩溃等问题,96%的情况下你都不需要进行c源码编译和调试。
其次,如果你非要用vs调试xmake可执行文件,xmake是支持vs2017工程生成的,详细请看相关文档:https://xmake.io/#/zh/plugins?id=%E7%94%9F%E6%88%90visualstudio%E5%B7%A5%E7%A8%8B
是的,绝大数情况xmake执行程序不会有问题的 我下载xmake源码,不是为了解决这个问题,只是想看看这个工具的逻辑是怎样的
那对于这个错误,该怎么办呢
如果急的话,你先自己调下install_package.lua吧,可以提个pr上来。
我暂时没装vcpkg,不急的话,等之后我有时间了再看看。
add_requires("vcpkg::simdjson") -- add target target("myTest")
xmake -y checking for the Microsoft Visual Studio (x86) version ... 2017 => install vcpkg::simdjson .. failed error: install failed!