Skip to content
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

生成vs2022工程,同一工程不同目录有两个同名的文件,无法正常编译 #2016

Closed
car520120 opened this issue Jan 28, 2022 · 3 comments

Comments

@car520120
Copy link

car520120 commented Jan 28, 2022

描述问题

工程中含有以下文件,导致无法正正编译
src/renderer.c
src/api/renderer.c

xmake project -k vs2022
在 vs2022 中直接编译,会编译失败

期待的结果

能正常编译

错误信息

vs2022 编译输出:信息以及执行的完整命令,:例如:

严重性	代码	说明	项目	文件	行	禁止显示状态
警告	MSB8027	名为 renderer.c 的两个或更多文件将生成到同一位置的输出。这会导致错误的生成结果。   调用的文件是 ..\..\src\renderer.c, ..\..\src\api\renderer.c。	lite-xl	C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets	1088	
警告	LNK4042	对象被多次指定;已忽略多余的指定	lite-xl	D:\Home\Learn\ide\lite-xl\build\.objs\lite-xl\windows\x64\debug\renderer.obj	1	
错误	LNK2001	无法解析的外部符号 luaopen_renderer	lite-xl	D:\Home\Learn\ide\lite-xl\vs2022\lite-xl\api.obj	1	
错误	LNK1120	1 个无法解析的外部命令	lite-xl	D:\Home\Learn\ide\lite-xl\build\windows\x64\debug\lite-xl.exe	1	

相关环境

请提供编译和运行环境信息,下面是一些必须填写的基础信息,便于我们针对性排查问题:

  • xmake版本:v2.6.2
  • xmake运行平台:win11
  • xmake目标平台:win11

https://github.com/lite-xl/lite-xl

add_requires("libsdl", "freetype", "pcre2","lua")
target("lite-xl")
    set_kind("binary")
    add_files("src/**.c")
    add_packages("libsdl", "freetype", "pcre2","lua")
    add_headerfiles("src/**.h")
    add_headerfiles("lib/dmon/*.h")
    add_includedirs("lib/dmon/")

xmake project -k vs2022

其他信息

使用 msvc 编译需要修改 以下文件兼容
rencache.c 第 93行 size_t alignment = alignof(max_align_t) - 1; 需要替换以下内容
size_t alignment = sizeof(size_t) - 1;

需要手动下载文件 src/api/unistd.h
https://github.com/win32ports/unistd_h.git

@waruqi
Copy link
Member

waruqi commented Jan 28, 2022

这是由于去掉了每个文件 object path 的路径设置,解决并行编译问题,如果要恢复回去,又可能会跟 #1062 的修复冲突,暂时还没好的办法。

你可以暂时先用 vxmake 生成器,xmake project -k vsxmake

@waruqi waruqi added this to the v2.6.4 milestone Jan 28, 2022
@waruqi
Copy link
Member

waruqi commented Jan 29, 2022

更新到 dev 再试试,应该可以了。。xmake update -s dev

@waruqi waruqi closed this as completed Jan 30, 2022
@car520120
Copy link
Author

谢谢的了,其实我自己改了工程文件名称就可以的了!只是这样做法不太好!所以才提了这个的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants