VC 2017 如何编译多个同名的文件?

糊涂2020 2017-08-23 02:07:38
我现在遇到一个这样的问题,公司本来有个项目,是在Linux下的C++,我想要把这个项目用VC来编译调试,这样应该会提升一些效率。但是碰到了一些同名的问题,简述如下:
1. 我系统中有一些同名文件,不过在不同目录中,如下图中的client.cpp, exception.cpp等等

2. 但在VS 2017中编译时,碰到了如下的错误:

1> Invoking g++
1> g++ -c -x c++ /home/debian/projects/poseidon/src/cbpp/client.cpp /home/debian/projects/poseidon/src/http/client.cpp /home/debian/projects/poseidon/src/websocket/client.cpp -g2 -gdwarf-2 -o "/home/debian/projects/poseidon/obj/x64/Debug/client.o" -Wall -Wswitch -W"no-deprecated-declarations" -W"empty-body" -Wconversion -W"return-type" -Wparentheses -W"no-format" -Wuninitialized -W"unreachable-code" -W"unused-function" -W"unused-value" -W"unused-variable" -O0 -fno-strict-aliasing -fno-omit-frame-pointer -fthreadsafe-statics -fexceptions -frtti -std=c++11
1> client.cpp
1> g++: fatal error: cannot specify -o with -c, -S or -E with multiple files
1> g++: fatal error: cannot specify -o with -c, -S or -E with multiple files

3. 在我的配置中,如下图所示:


现在我的问题是,在VC2017中,能不能设置每个输出的.o文件,保存在不同的目录?如果能行,我该怎么设置?
...全文
873 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zmcoo7 2019-01-10
  • 打赏
  • 举报
回复
引用 5 楼 糊涂2020 的回复:
[quote=引用 4 楼 cutmelon 的回复:]
有办法的啊

C/C++ -> 输出文件 -> 对象文件名 ->
$(IntDir)/%(RelativeDir)/


哇塞,确实有用,谢谢了,马上结帖,感谢非常![/quote]
您好.前面打什么说的方法好像可以用着win的项目里这样设置.Linux的您是怎么设置的方便告诉我一下吗?没找到在哪里改.谢谢啦
糊涂2020 2017-08-26
  • 打赏
  • 举报
回复
引用 4 楼 cutmelon 的回复:
有办法的啊 C/C++ -> 输出文件 -> 对象文件名 -> $(IntDir)/%(RelativeDir)/
哇塞,确实有用,谢谢了,马上结帖,感谢非常!
cutmelon 2017-08-24
  • 打赏
  • 举报
回复
有办法的啊 C/C++ -> 输出文件 -> 对象文件名 -> $(IntDir)/%(RelativeDir)/
赵4老师 2017-08-23
  • 打赏
  • 举报
回复
既然在linux下makefile没问题,为什么不在Windows下的虚拟机比如VMWare下的Linux中Build、Run、Debug呢?
糊涂2020 2017-08-23
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
放在不同的文件夹下不行的话,只好改名了。
我当然知道改名,但是一来这个项目比较大,同名的比较多,改起来比较麻烦,二来在linux下运行,用makefile,没有问题的。 所以想先找找办法,实在不行,再说改名的事。
赵4老师 2017-08-23
  • 打赏
  • 举报
回复
放在不同的文件夹下不行的话,只好改名了。
转载的东西: 本来zxing的c++部分不是为windows准备的,在windows中编译应该用mingw比较合适。但我不熟悉这个。今天试一下,似乎可以在VS2008编译。虽然有很多问题,不过都可以解决的。 大概有如下问题: 1。isnan, NAN, INFINITY, fmax等一些常量或函数找不到,这是linux与windows包含文件的差异。自己创建就行,我做在nan.cpp和nan.h之中。 2。文件同名:可以把那些文件编译到不同目录,这样就不会干扰了。默认是编译到同一个目录。 3。变长数组的语法:GCC支持变长的数组变量,比如 void gcc(int len) { int data[len]; } 但VC不支持,所以很多地方都要改过来。我的做法是:查到它所有的调用之处,找一个比较大的数值来取代len。 4。iconv.h: 要下载: http://gnuwin32.sourceforge.net/packages/libiconv.htm 需要DLL和lib导入库。我上传的代码不用iconv。通过设置NO_ICONV,可以不需要libiconv,但是扫描结果也没有转换,需要调用方自己做字符集转换。 经过这些,应该可以编译了。 编译它的示例: 这要求有ImageMagick,直接下载一个安装, 安装完成后,新建一个windows控制台项目,导入示例,设置好ImageMagick和zxing头文件和库文件目录。编译后,运行。 我放在zxtest项目中。 根据示例,写pascal接口,这部分代码放在ZXingDLL中。 通过分析,LuminanceSource应该是一个zxing分析图像的接口,要从这个派生出来一个类才能让zxing工作。示例是用MagickBitmapSource ,它用了ImageMagick库,太大,所以我分析了源码,发现只要输出灰度就行了,这样我在DELPHI中获取图像,然后转成灰度图,再转进来。具体看我的DELPHI和lazarus代码。 上传的压缩包没有带dll,只有工程文件,谁有VS2008编译一下吧。

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧