VS2012下,怎么样设置项目,以让编译出的目标文件保持文件路径?

C语言 码拜 9年前 (2015-11-12) 1038次浏览
如题,有个项目,里面有很多个源文件,这些源文件,有若干个源文件的文件名相同,但在不同的目录下,例如:
src/thread/win32.c
src/video/win32.c
src/sound/win32.c
src/input/mouse/win32.c
src/input/keyboard/win32.c
但用VS2012进行编译,它会把全部已编译的obj文件放在同一目录下,像这样:
Release/win32.obj
Release/win32.obj
Release/win32.obj
Release/win32.obj
Release/win32.obj
这会导致出现警告:warning LNK4042: 对象被多次指定;已忽略多余的指定
而编译出的静态库 里就没有其他win32.c里的函数了。
问一下,可不可以通过设置,让VS2012编译出的obj文件保持和源文件一样的路径?例如:
Release/thread/win32.obj
Release/video/win32.obj
Release/sound/win32.obj
Release/input/mouse/win32.obj
Release/input/keyboard/win32.obj
或,加个前缀名也行:
Release/thread_win32.obj
Release/video_win32.obj
Release/sound_win32.obj
Release/input_mouse_win32.obj
Release/input_keyboard_win32.obj
反正只要解决问题就行。
另外,编译出的静态库的体积,比 编译出的动态库的体积大很多,静态库10MB左右,而动态库才几百KB。
昨天百度搜索关于这静态库和动态库的问题,搜索到CSDN上,回帖者都把提问者的问题当成:静态链接的可执行文件 的体积 比 动态链接的可执行文件的体积 大。本人顿时无语。
解决方案:30分
mv  src/thread/win32.c          src/thread/thread_win32.c
mv  src/video/win32.c           src/video/video_win32.c
mv  src/sound/win32.c           src/sound/sound_win32.c
mv  src/input/mouse/win32.c     src/input/mouse/mouse_win32.c
mv  src/input/keyboard/win32.c  src/input/keyboard/keyboard_win32.c
解决方案:10分
名字后加个后缀不好吗?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明VS2012下,怎么样设置项目,以让编译出的目标文件保持文件路径?
喜欢 (0)
[1034331897@qq.com]
分享 (0)