libboost_filesystem-vc
全部标签 我有一个在VS2008下编译的相当大的C++程序(~11mbexe),我很想知道整个程序优化是否会显着影响其性能。但是开启全程序优化和链接时间代码生成导致链接失败如下;1>c:\cpp\Win32\Atlas\tin\TINDoc.Cpp:fatalerrorC1083:Cannotopencompilerintermediatefile:'.\releaseopt\TINDoc.obj':Notenoughspace1>LINK:fatalerrorLNK1257:codegenerationfailed查看任务管理器,我可以看到链接器使用越来越多的内存,直到用完并崩溃。编译器在具有
我有以下代码:#include#includeintmain(){constchar*file_path="my_path";std::cout当我构建时出现以下错误:1>Main.obj:errorLNK2019:unresolvedexternalsymbol"classboost::system::error_categoryconst&__cdeclboost::system::system_category(void)"(?system_category@system@boost@@YAAEBVerror_category@12@XZ)referencedinfunction
我想编写一个程序来链接已经用VC++创建的二进制文件。在Eclipse中为VC++添加工具链的步骤是什么?有人试过成功吗?如果是这样,调试器是否仍然有效? 最佳答案 VC++有一个工具链实现。构建插件名为org.eclipse.cdt.msw.build,还有一组名为org.eclipse.cdt.msw.debug.*的调试器插件。我认为构建集成有效,但调试器集成在可用之前仍需要一些工作。CDT团队的DougSchaefer拥有blogged关于这个好几次了,一直运行Wascana为此项目进行了一段时间。不幸的是,he'snolo
我打开了一个旧工作区,它是一个库及其测试工具。它过去工作正常,但现在不行,旧版本的代码也不能工作,但会出现相同的错误。我试过重新创建项目,这也导致了同样的错误。项目设置中似乎没有任何问题,生成的代码在主应用程序中工作。我已经删除了大部分文件并将其减少到最低限度以生成错误。不幸的是,我无法发布该项目,因为它用于生产代码。我遇到的LNK2001链接器错误通常意味着我离开了一个库或忘记实现一个虚函数。然而,这是标准模板库的一部分-并且是一个header。在IOCompletionPort.obj中被列为有问题的代码实际上并没有直接使用std::string,而是调用了一个类:Comms::E
我一直在使用cstdlib中的std::atoll通过gcc将字符串转换为int64_t。该功能似乎在Windows工具链上不可用(使用VisualStudioExpress2010)。什么是最佳选择?我也对将strings转换为uint64_t感兴趣。取自cstdint的整数定义。 最佳答案 MSVC有_atoi64和类似的功能,参见here对于无符号64位类型,请参阅_strtoui64 关于c++-std::atoll与VC++,我们在StackOverflow上找到一个类似的问题
我一直在SO和MSDN周围寻找这个问题的答案,但似乎找不到明确和最终的答案......我知道它在C++11标准中并且当前的GCC版本以这种方式运行,但是VC2010目前是否保证局部静态变量初始化的线程安全?即:这对于VC2010是线程安全的吗?staticS&getInstance(){staticSinstance;returninstance;}...如果不是,当前使用VC2010在C++中实现线程安全单例的最佳实践是什么?编辑:正如ChrisBetti的回答所指出的,VC2010没有实现局部静态变量init的线程安全。 最佳答案
您是否知道在将VC++6/Win32项目转换为VS2010C++/Win32项目类型期间强调已知或可能出现的问题的资源?我对各种问题都感兴趣:编译器选项兼容性编译时问题链接时间问题运行时问题MFC问题否则,如果您已经执行了那种迁移,您遇到了什么问题?谢谢 最佳答案 VC++6有非标准的异常处理。我们遇到了一些问题,因为我们的代码包含以下内容:try{//Somecode}catch(...){//Handleerror}一些开发人员依赖于这种损坏的行为,我们的应用程序在VS2008中编译后严重崩溃。这article很好地解释了它以及
我想使用Boost.Filesystem库来操作路径、文件和目录。我的问题是是否支持长于MAX_PATH的路径?我知道在Win32API中我们有解决方法“\\?\”,但它不受PathAppend和PathCombine等基本函数的支持。所以我正在寻找有关MAX_PATH和Boost.FS的任何有用信息。谢谢UPD:我关心所有操作,如路径追加、路径合并等(我在Win32API中有这些函数,但它们不适用于比MAX_PATH长的路径)例如CreateFileW和DeleteFileW都支持比MAX_PATH长的路径。可能Boost.FS可以替代Win32API实用程序函数,例如shlwapi
我最近安装了VisualStudio2010并使用CMake为我的项目生成了解决方案文件。此过程以前在VS2005上运行良好。我遇到的第一个问题是因为新的“移动构造函数”,所以我不得不从我的代码中删除一些隐式转换——很公平,现在可以了。我目前的情况如下:我正在编译DLL1,它只依赖于一些系统库(Kernel32等)和CRT,并且DLL2,它链接到DLL1,以及一些第三方库。我得到的错误是:DLL1.lib(DLL1.dll):errorLNK2005:"public:__thiscallstd::basic_string,classstd::allocator>::~basic_str
如何确定文件是否包含在boost文件系统v3的路径中。我看到有一个lesser或greater运算符,但这似乎只是词法上的。我看到的最佳方式如下:取文件和路径的两个绝对路径删除文件的最后一部分并查看它是否等于路径(如果是则包含)有没有更好的方法来做到这一点? 最佳答案 以下函数应确定文件名是否位于给定目录中的某个位置,作为直接子目录还是在某个子目录中。boolpath_contains_file(pathdir,pathfile){//Ifdirendswith"/"andisn'ttherootdirectory,thenthef