搞乱单元测试插件的各种设置给我留下了一个混乱的项目文件.我似乎修复了它,但是有一个副作用:每次我运行插件时,控制台都会为每个类文件填充警告,如下所示:
警告:找不到对象文件"/ Users/elisevanlooij/Documents/Project Plug-ins/MyPlugin 8/build/MyPlugin.build/Debug/MyPlugin.build/Objects-normal/i386/MyPlugin.o" - 没有可用的调试信息为"/ Users/elisevanlooij/Documents/Project Plug-ins/MyPlugin 8/MyPlugin.m".
现在我完全理解为什么错误发生,因为路径/ Users/elisevanlooij/Documents/Project插件/ MyPlugin 8不再存在:"MyPlugin 8"是一个临时文件夹(myvlugin的svn版本8的签出)因为去了垃圾桶,也被清空了.MyPlugin的当前版本甚至不应该知道它,但不知何故,由于某种原因,Xcode和/或gdb不会放弃.我甚至抛弃了Precompiled Headers Cach路径中的相关缓存,但没有任何乐趣.谷歌搜索已经向其他人透露了这个问题,但没有解决方案.谁可以帮忙?
这些是具有值的构建设置(Debug).顺便说一句,就我所见,它们就像没有这个问题的插件一样.
ARCHS = $(ARCHS_STANDARD_32_BIT)
SDKROOT = macosx10.5
ONLY_ACTIVE_ARCH = YES
VALID_ARCHS = i386 ppc ppc64 ppc7400 ppc970 x86_64
SYMROOT = build
OBJROOT = $(SYMROOT)
CONFIGURATION_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
CONFIGURATION_TEMP_DIR = $(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
SHARED_PRECOMPS_DIR = $(CACHE_ROOT)/SharedPrecompiledHeaders
BUILD_VARIANTS = normal
DEBUG_INFORMATION_FORMAT = dwarf
ENABLE_OPENMP_SUPPORT = NO
GENERATE_PROFILING_CODE = NO
PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = NO
ALTERNATE_GROUP = $(INSTALL_GROUP)
ALTERNATE_OWNER = $(INSTALL_OWNER)
ALTERNATE_MODE = $(INSTALL_MODE_FLAG)
DEPLOYMENT_LOCATION = NO …Run Code Online (Sandbox Code Playgroud) 因此,我升级到Mavericks以及最新版本的Xcode(5.02),并且 - 正如预期的那样,无法编译包含C扩展的任何新的Ruby宝石.这种情况特别发生在我自己的项目NMatrix中,其中包括C和C++代码.
我重新安装了Xcode的命令行工具.然后我升级了自制软件.然后我卸载了rbenv,ruby-build和我的自定义GCC版本(4.7除外,它是手动安装而不是通过brew安装).
接下来,我使用brew来安装gcc48(和gcc49一样好).我指示我的gem用GCC-4.8.2而不是GCC 4.9的dev快照构建.
好消息是我的宝石现在可以正常编译.坏消息是它不会链接.这是链接步骤:
$ bundle exec rake compile
cd tmp/x86_64-darwin13.0.0/nmatrix/2.0.0
make
linking shared-object nmatrix.bundle
ld: warning: directory not found for option '-L/usr/lib64/atlas'
0 0x10ef3f724 __assert_rtn + 144
1 0x10ef7425e archive::File<x86_64>::makeObjectFileForMember(archive::File<x86_64>::Entry const*) const + 1118
2 0x10ef73c3b archive::File<x86_64>::justInTimeforEachAtom(char const*, ld::File::AtomHandler&) const + 139
3 0x10ef883fe ld::tool::InputFiles::searchLibraries(char const*, bool, bool, bool, ld::File::AtomHandler&) const + 210
4 0x10ef8f181 ld::tool::Resolver::resolveUndefines() + 189
5 0x10ef911a5 ld::tool::Resolver::resolve() + 79
6 0x10ef3fb17 main + 669
A linker snapshot was created at:
/tmp/nmatrix.bundle-2013-10-15-085036.ld-snapshot
ld: …Run Code Online (Sandbox Code Playgroud) 如果有人能帮助我理解在枚举器中使用Yielder与在枚举器中调用yield之间的区别,我将不胜感激.
"有根据的Rubyist"表明,人们不会"从块中屈服",但并不能准确地解释发生了什么.
谢谢
我有一个使用automake和autoconf的C++项目.我是这两个人的新手.
我的主目录是网络安装的 - 我们拥有的每台服务器都是一样的 - 我想在不同的机器上同时编译和运行项目(及其可执行文件).
我们的服务器通常是不同的架构.我的桌面是32位,但服务器是64位等.
哪些选项我在使用configure.ac和Makefile.am编写命名为计算机体系结构不同的目录中的目标文件?在常规Makefile中执行此操作相对简单,但我不知道如何设置autotools.
当我尝试做rails server和thin start,两人都说:"在任何一个源找不到的ActiveSupport-3.0.6."
我安装了activesupport-3.0.7.我是否需要还原以使activesupport与我的Rails版本(3.0.6)匹配?
我一直在尝试设计我的只读数组数据结构,我真的很喜欢用Enumerable类提供遍历选项,但我找不到它的要求.在我看过的一些例子中,C实现寻找#each方法,但在我看来它还不够.
我有一个模板化的数学函数,它接受两个值,对它们进行一些数学运算,并返回相同类型的值.
template <typename T>
T math_function(T a, T b) {
LongT x = MATH_OP1(a,b);
return MATH_OP2(x,a);
}
Run Code Online (Sandbox Code Playgroud)
我想将中间值(在x中)存储在一个类型中,该类型基本上是T的长版本(上面称为LongT).所以,如果T是浮点数,我希望x是双精度数; 如果T是一个int,我希望x是一个long int.
有没有办法实现这个目标?我试过了enable_if,但似乎我真的需要一个enable_if_else.
我更愿意让编译器自己弄清楚LongT的用途.当我调用函数时,我宁愿不必指定它.
我正在看一些可能无法正常工作的VTK代码.这是一个片段:
vtkSmartPointer<vtkCamera> cam = vtkSmartPointer<vtkCamera>::New();
cam->SetFocalPoint(0, 0, 0);
cam->SetViewUp(perp[0], perp[1], perp[2]);
cam->SetPosition(first_cam_pos);
cam->SetViewAngle(20);
cam->Modified();
Run Code Online (Sandbox Code Playgroud)
在我看来,呼叫Modified()是不必要的,调用四个Set功能应该自动发出相机已被修改的信号.
实际上,Kitware VTK相机示例不适Modified()用于相机.
vtkSmartPointer<vtkCamera> camera = vtkSmartPointer<vtkCamera>::New();
camera->SetPosition(0, 0, 20);
camera->SetFocalPoint(0, 0, 0);
// Create a renderer, render window, and interactor
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
renderer->SetActiveCamera(camera);
Run Code Online (Sandbox Code Playgroud)
在其他情况下,我正在查看的可能无法工作的VTK代码Update()用于手动更新 - 不是用于相机对象,而是用于其他地方.我再次认为这可能不是必要的; 但显然Update()并且Modified()出于某种原因存在.
有一些规则来确定何时Modified()和Update()需要被调用,当他们不这样做?是否有某些类型的对象需要它们而某些类型的对象不需要它们?或者它与调用它们的函数类型有关?
我正在使用VTK 6.1,但如果这里有一些历史背景,我很乐意得到一般答案.
我搜索了一段时间,发现了一些合理的说法,即 CPython 的编译允许更快地执行 Python 代码。不过,我想知道是否有人知道任何可以证明加速程度的基准测试。
或者,也许有一种简单的方法可以让我对其进行基准测试。是否有一个可以在运行时给出的Python标志来关闭编译?