小编The*_*EEP的帖子

MinGW/Eclipse ld.exe找不到库

我正在使用Eclipse CDT尝试使用Ogre 3D引擎编译项目.但不知何故,mingw无法找到我链接的静态库.

这些是错误消息:

c:/ mingw/bin /../ lib/gcc/mingw32/4.6.1 /../../../../ mingw32/bin/ld.exe:找不到-lzziplib_d

c:/ mingw/bin /../ lib/gcc/mingw32/4.6.1 /../../../../ mingw32/bin/ld.exe:找不到-lzlib_d

c:/ mingw/bin /../ lib/gcc/mingw32/4.6.1 /../../../../ mingw32/bin/ld.exe:找不到-lfreetype_d

...等等.对于每个库,列表都是这样的.

您可能已经看到,我已经知道ld.exe似乎自动生成的(IMO)奇怪的"lib"和".a"添加内容.这些库都正确命名.例如,"freetype_d"实际上是"libfreetype_d.a".

我之前也添加了正确的库路径,如下所示:

-L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug \" - L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug\opt \"

每个库文件都在这两个文件夹中.

这是Eclipse CDT显示的完整命令行:

g ++ -L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug \" - L"C:\ Coding\Ogre\make-debug\sdk\lib\Debug\opt \" - o"OgreTestMinGW" ./BaseApplication.o ./LowLevelOgre.o -lzziplib_d -lzlib_d -lfreetype_d -lFreeImage_d -lOIS_d.dll -lOgreMainStatic_d -lOgrePagingStatic_d -lOgrePropertyStatic_d -lOgreRTShaderSystemStatic_d -lOgreTerrainStatic_d -lRenderSystem_GLStatic_d -lPlugin_ParticleFXStatic_d -lPlugin_PCZSceneManagerStatic_d -lPlugin_OctreeZoneStatic_d -lPlugin_OctreeSceneManagerStatic_d -lPlugin_CgProgramManagerStatic_d -lPlugin_BSPSce​​neManagerStatic_d

我在这里错过了什么?

c++ eclipse mingw eclipse-cdt ld

12
推荐指数
1
解决办法
4万
查看次数

如何将委托或函数指针从C#传递给C++并使用InternalCall在那里调用它

我在C#中进行了以下设置:

public delegate void CallbackDelegate(string message);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public static extern void setCallback(CallbackDelegate aCallback);

public void testCallbacks()
{
    System.Console.Write("Registering C# callback...\n");
    setCallback(callback01);
}

public void callback01(string message)
{
    System.Console.Write("callback 01 called: " + message + "\n");
}
Run Code Online (Sandbox Code Playgroud)

这在C++中(该函数通过mono_add_internal_call正确注册):

typedef void (*CallbackFunction)(const char*);
void setCallback(MonoDelegate* delegate)
{
    // How to convert the MonoDelegate to a proper function pointer?
    // So that I can call it like func("test");
}
Run Code Online (Sandbox Code Playgroud)

调用C++函数,并将某些内容传递给委托变量.但现在呢?

我环顾四周,发现了几次提到的函数"mono_delegate_to_ftnptr",从这些例子来看,它似乎正是我所需要的.
但是,这个函数似乎在我的mono(4.6)分布中似乎不存在,所以我只能猜测它不再存在了.

我还找到了一些如何使用PInvoke执行此操作的示例.这是我不想使用的东西 - 因为InternalCall对我来说要快得多.
当然,如果PInvoke是唯一的方式,那就这样吧,但我对此表示怀疑.

最后,我真的不知道如何从这里开始.

c# c++ mono delegates

9
推荐指数
1
解决办法
6693
查看次数

未使用的DOM元素会发生什么?

假设我创建了一个具有自己的画布的类:

this.canvas = document.createElement("canvas");
Run Code Online (Sandbox Code Playgroud)

我使用那个画布,绘制一些东西等,但从不将画布添加到DOM树.当我完成后,我将不再使用全班.

所以当我删除使用画布的类时,画布是否仍占用内存?我是否必须以某种方式删除它?

或者,作为一个更一般的问题:不再存在于DOM树中的未使用元素会发生什么变化或从未发生过(在网站中不可见)?它们会被垃圾收集和/或你能加快速度以提高性能吗?

javascript html5 dom

6
推荐指数
1
解决办法
274
查看次数

在宏中创建函数

@:build我正在尝试使用和宏向类及其子类的所有实例添加静态变量和静态函数@:autoBuild

我设法让静态变量工作,但我不知道如何从各种“构建”函数EFunctionEFor等等。

这是我到目前为止的代码:

macro static public function addGetId() :Array<Field>
{
    var fields : Array<Field> = Context.getBuildFields();

    // The static _id field
    var idField = {
        name : "_id",
        doc : null,
        meta : [],
        access : [AStatic, APrivate],
        kind : FVar(macro : Int, macro -1),
        pos : Context.currentPos()
    };

    // The getId function field
    var getIdField = {
        name : "getId",
        doc : "Returns the ID of this command type.",
        meta : [], …
Run Code Online (Sandbox Code Playgroud)

macros haxe

5
推荐指数
1
解决办法
960
查看次数

3D的速度更快?Perlin或Simplex噪音?

好的,在网上找到了Perlin和Simplex噪音之间的很多比较.但我真的找不到三个维度之间的简单处理时间比较,这是我最感兴趣的.我已经阅读了那个流行的PDF(甚至大部分都理解了 - 是的!)但是我无法回答这个简单的问题:假设最佳实现,哪一个更快3D?

这个stackoverflow问题答案表明,Simplex对我来说是一个非常明显的赢家.当然,还有其他资源声称完全相反.

然而,一般声明似乎是Perlin噪声具有O(2 ^ N)的复杂度,而Simplex具有O(N ^ 2).其中3D表示Perlin为8,Simplex为9.但是,在某些网站上,我发现Simplex实际上是O(N)的说法.那么这里的真实情况什么,这对3D的速度意味着什么呢?

我在这里不知所措,我真的主要对3D应用程序(包括洞穴的随机地形生成)的使用感兴趣,如果我希望它能像我一样快,我找不到一个问题的答案.可能.

所以也许有人可以帮助我:)

algorithm 3d procedural-generation perlin-noise simplex-noise

4
推荐指数
1
解决办法
4946
查看次数

奇怪的枚举名称冲突

我正在编译一个同时使用ffmpeg和Ogre的项目.现在在Windows上,一切正常.

但是,当我想用​​以下代码行编译文件时:

Ogre::PixelFormat format = Ogre::PF_BYTE_RGBA;
Run Code Online (Sandbox Code Playgroud)

编译器给出以下错误:

error: ‘AVPixelFormat’ is not a member of ‘Ogre’
Run Code Online (Sandbox Code Playgroud)

这在很多方面都很奇怪,因为我不仅使用::指定了Ogre命名空间,而且Ogre中也没有AVPixelFormat.gcc如何将"PixelFormat"与"AVPixelFormat"混为一谈?

我怎么能摆脱它呢?

我喜欢在这里使用int而不是枚举,但另一个Ogre函数需要格式在Ogre :: PixelFormat中.

c++ gcc namespaces ffmpeg ogre

4
推荐指数
1
解决办法
574
查看次数

ffmpeg API h264编码视频无法在所有平台上播放

编辑:在以前的版本中,我使用了一个非常古老的ffmpeg API.我现在使用最新的库.问题只是略有改变,从"主要"到"高".

我正在使用ffmpeg C API在C++中创建mp4视频.

我希望得到的视频属于"约束基线",这样生成的视频可以在尽可能多的平台上播放,特别是移动,但我每次都获得"高"配置文件,即使我对编解码器进行了硬编码个人资料为FF_PROFILE_H264_CONSTRAINED_BASELINE.因此,视频无法在我们所有的测试平台上播放.

这就是"ffprobe video.mp4 -show_streams"讲述我的视频流:

  Metadata:
major_brand     : isom
minor_version   : 512
compatible_brands: isomiso2avc1mp41
creation_time   : 1970-01-01 00:00:00
encoder         : Lavf53.5.0
  Duration: 00:00:13.20, start: 0.000000, bitrate: 553 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 320x180,
424 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc
Metadata:
  creation_time   : 1970-01-01 00:00:00
  handler_name    : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 12
kb/s
Metadata:
  creation_time   : 1970-01-01 …
Run Code Online (Sandbox Code Playgroud)

encoding ffmpeg h.264 libavcodec

3
推荐指数
1
解决办法
7257
查看次数

QTreeView没有显示标题

我正在使用自定义sortfilterproxymodel(它将另一个自定义模型作为源)和自定义委托(覆盖绘制)显示TreeView以影响每个项目的显示.

但是,我无法显示TreeView的标题.我查看了代理和普通模型,并且都调用了headerData()并返回正确的值.我没有明确隐藏标题.实际上,我明确地将()将TreeView的头部和setHeaderHidden()显示为false.

什么可能导致标题没有显示?

这是委托的paint()函数,因为我怀疑那里的错误:

//---------------------------------------------------------------------------------
void
MyDelegate::paint(QPainter* p_painter, const QStyleOptionViewItem& p_option, const QModelIndex& p_index) const
{
    // Get a custom text
    QString text = "";

    // Code that changes the text variable, nothing fancy, no pre-mature return
    // Left out for convenience

    // Call painter methods for drawing
    p_painter->save();
    p_painter->setClipRect(p_option.rect);

    drawBackground(p_painter, p_option, p_index);
    drawDisplay(p_painter, p_option, p_option.rect, text);
    drawFocus(p_painter, p_option, p_option.rect);

    p_painter->restore();
}
Run Code Online (Sandbox Code Playgroud)

如果你想知道我为什么要手动完成所有画家的东西(save(),drawBackground等),那是因为它似乎是改变paint()函数中显示文本的唯一方法.至少我能想到的唯一一个.但我不知道这是否与视图中未显示的标题有关.

编辑:到现在为止,我尝试用默认的涂料替换自己的涂料.标题仍未显示,因此paint()方法似乎是无辜的;)

c++ model-view-controller treeview qt

3
推荐指数
1
解决办法
1172
查看次数

错误:访问未定义的属性JSON ......但它就在那里

我正在开发一个使用AS3 Facebook API的Flash应用程序(Flash Player 11作为目标平台),后者又使用as3corelib JSON功能.或者至少它应该这样做.

但是,尽管包含as3corelib.swc 的最新版本(.93),我仍然得到"错误:未定义属性JSON的访问".我也试过直接包括这些来源,但无济于事.

我有什么想法我做错了吗?

正如我所说,*.swc肯定包括在内.和源代码一样(都在正确的路径上).

编辑:

我有一个更具体的错误消息:

Error: Can not resolve a multiname reference unambiguously. JSON (from C:\Coding\FlashDevelop\Tools\flexsdk\frameworks\libs\air\airglobal.swc(JSON, Walker)) and com.adobe.serialization.json:JSON (from C:\flash_test\lib\as3corelib.swc)) are available.
Run Code Online (Sandbox Code Playgroud)

我知道JSON包含在AIR中,但我没有针对AIR,所以为什么尝试包含airglobal.swc?

flash flashdevelop actionscript-3 facebook-graph-api

0
推荐指数
1
解决办法
8388
查看次数