-
-
Notifications
You must be signed in to change notification settings - Fork 808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在xmake.lua中set_config修改sdk没有效果 #923
Comments
is_plat 的判断取值 依赖 而取 sdk 配置的时候,is_plat 还不一定有值,因为这个时候 --plat 也在取,还不能判断,所以 这个if前几次加载 会是 false 你只能吧 set_config 设置到全局,或者使用 is_xxx 不依赖 另外, |
对于新版本,如果你要定制固定自己的 工具链路径和编译器,可以 参考 https://xmake.io/#/zh-cn/manual/custom_toolchain 通过 这也是推荐做法,然后通过 https://xmake.io/#/zh-cn/manual/project_target?id=targetset_toolchains 这个就能绑定你的工具链到特定的target上去 |
明白了,多谢解惑 |
你好,使用自定义工具链,我看文档说的是在xmake.lua中使用toolchain自定义,然后使用xmake f --toolchain=xxx切换应该就可以了,这是我的工程配置xmake.lua toolchain("mytool")
set_kind("standalone")
set_sdkdir("/usr/KIDE/host/ide/tools_chain/x86_64/x86_64_gcc6.2.0_glibc2.24.0")
toolchain_end()
add_includedirs("./Utils/include", "./NetBase/include")
add_cxxflags("-Werror")
set_languages("c++14")
if is_mode("debug") then
add_cxxflags("-g", "-Og")
end
target("APM")
set_kind("static")
add_files("./Utils/source/*.cpp", "./NetBase/source/*.cpp")
target("TestUDP")
set_kind("binary")
add_deps("APM")
add_files("./Test/Udp/main.cpp")
add_links("pthread") 我在使用
请问我是不是哪里理解错了? |
set_toolset 没设置,toolchain 是完整的工具链定义和设置,不单纯只是 sdk 路径,还需要设置编译器链接器 请参考 #912 (comment) |
toolchain("x86_64")
set_description("x86_64 toolchain")
set_kind("standalone")
set_sdkdir("/usr/KIDE/host/ide/tools_chain/x86_64/x86_64_gcc6.2.0_glibc2.24.0")
on_load(function (toolchain)
import("core.project.config")
local cross = "x86_64-pc-linux-gnu-"
toolchain:set("toolset", "cc", cross .. "gcc")
toolchain:set("toolset", "cxx", cross .. "gcc")
toolchain:set("toolset", "cpp", cross .. "gcc -E")
toolchain:set("toolset", "as", cross .. "gcc")
toolchain:set("toolset", "ld", cross .. "g++")
toolchain:set("toolset", "sh", cross .. "g++")
toolchain:set("toolset", "ar", cross .. "ar")
-- toolchain:set("toolset", "ex", cross .. "ar")
-- toolchain:set("toolset", "ranlib", cross .. "ranlib")
-- toolchain:set("toolset", "strip", cross .. "strip")
local sdkdir = toolchain:sdkdir()
if sdkdir then
local includedir = path.join(sdkdir, "include")
if os.isdir(includedir) then
toolchain:add("includedirs", includedir)
end
local linkdir = path.join(sdkdir, "lib")
if os.isdir(linkdir) then
toolchain:add("linkdirs", linkdir)
end
end
end)
toolchain_end() 我将toolchain修改为例子中所示的样子,还是报错:
请问on_check是必需的吗?还是说除了toolset外还要设置其他东西? |
我是否应该在on_check中调用find_cross_toolchain返回一个toolchain? |
看下刚发你的 #912 (comment) 用 master dev 版本 |
可选的 你都写死路径和工具链了了 加不加无所谓 |
好的,那#912 这个问题还没有在最新的版本中体现是吗?那么下一个正式版大概什么时候发布呢? |
是的 具体发版时间待定 估计8 9月份吧 |
好的,明白了,多谢 |
可以了么 |
关于这块,我继续改进了下,可以进一步简化配置,例如 toolchain("my_toolchain")
set_kind("standalone")
set_cross("arm-linux-musleabi-")
set_sdkdir("/tmp/arm-linux-musleabi-cross")
toolchain_end()
target("hello")
set_kind("binary")
add_files("apps/hello/*.c")
if is_plat("myplat") then
set_toolchains("my_toolchain")
end 常用cc/ld等交叉编译会自动检测,不需要设置全 具体可以到 #1008 跟进 |
描述问题
如题,日志如下:
add_defines生效了,但是set_config("sdk","....")未生效,日志见下文
期待的结果
应该和xmake f --sdk="..."效果一致才对。
错误信息
如果可能,请尽量附加程序运行过程中的错误输出信息。
相关环境
请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:
其他信息
shell日志:
The text was updated successfully, but these errors were encountered: