VisualC++——从链接器>输入>排除附加文件 我有一个VisualStudio解决方案,有多个C++项目,我发现管理链接器依赖有点麻烦。
每次包含来自其他项目的头文件时,我都需要在链接器设置中显式添加相应的.obj文件。 即,在属性>链接器>输入>其他依赖项中:VisualC++——从链接器>输入>排除附加文件 我有一个VisualStudio解决方案,有多个C++项目,我发现管理链接器依赖有点麻烦。,c++,visual-studio,visual-studio-2012,linker,visual-studio-2017,C++,Visual Studio,Visual Studio 2012,Linker,Visual Studio 2017,每次包含来自其他项目的头文件时,我都需要在链接器设置中显式添加相应的.obj文件。 即,在属性>链接器>输入>其他依赖项中: ..\Project1\$(Platform)\$(Configuration)\Obj1.obj ..\Project1\$(Platform)\$(Configuration)\Obj2.obj ..\Project2\$(Platform)\$(Configuration)\Obj3.obj ..\Project2\$(Platform)\$(Configurati
..\Project1\$(Platform)\$(Configuration)\Obj1.obj
..\Project1\$(Platform)\$(Configuration)\Obj2.obj
..\Project2\$(Platform)\$(Configuration)\Obj3.obj
..\Project2\$(Platform)\$(Configuration)\Obj4.obj
使用通配符将大大简化此任务:
..\Project1\$(Platform)\$(Configuration)\*.obj
..\Project2\$(Platform)\$(Configuration)\*.obj
但不幸的是,这还包括Project1和Project2中的两个main.obj文件
有没有办法从链接器输入中排除这些文件
我尝试使用以下标准Windows文件搜索选项:
"..\Project1\$(Platform)\$(Configuration)\*.obj"-"..\Project1\$(Platform)\$(Configuration)\main.obj"
"..\Project2\$(Platform)\$(Configuration)\*.obj"-"..\Project2\$(Platform)\$(Configuration)\main.obj"
但显然他们在这里不受支持。事实上,简单地在有效链接器路径周围添加引号似乎会破坏一切
我也看到了,当然,我可以这样做,通过自定义脚本重命名或删除不需要的文件,但我宁愿避免这样做。我想做的似乎是一件相当合理的事情;每个项目都有自己的main.obj对我来说是有意义的,链接一些但不是全部。必须有一些标准的VS方式来表示链接每件事,除了这个链接器
但请随意纠正我当然,这就是我来这里的原因。提前谢谢
p、 美国:我目前正在使用VS2012,但我对任何VS版本的答案都感兴趣,即使是旧版本,我也不会因此而降级,但我很感兴趣。我希望这会有所帮助,我通常不会在项目文件中手动引用对象文件。您是否尝试过..\Project1\$Platform\$Configuration\O*.obj?是的,对于我指定的具体示例,这将是一个很好的解决方案,但不幸的是,我的实际文件名更加多样化,如Geometry.obj和AbstractPartitioner.obj。但我同意这种方法。您知道是否允许使用其他通配符吗?我是否可以编写类似于????*.obj的内容来排除短于5个字符的文件名?或者,您知道在哪里可以找到允许的通配符列表吗?通常,其他对象文件将是库的一部分,您可以链接到该库。否则,您可以将.cpp文件添加到新项目中,而无需将其从原始位置移动。这样它就会自动被包括在内。嗯。。。这就是我做错的地方。谢谢你的帮助,我想我会链接到一个lib。谢谢你的帮助!如果你不介意的话,我更愿意把这个问题再讨论一段时间,但我会接受你的答案,除非我有另一个答案可以直接解决我的问题。让事情成功的方法总是不止一种: