小编Chr*_*ert的帖子

CMake无法使用C++确定链接器语言

我正在尝试使用Visual Studio 2010和Cygwin在Windows 7 x64上运行cmake hello world程序,但似乎无法运行.我的目录结构如下:

HelloWorld
-- CMakeLists.txt
-- src/
-- -- CMakeLists.txt
-- -- main.cpp
-- build/
Run Code Online (Sandbox Code Playgroud)

我做了一个cd build跟随a cmake ..,并得到一个错误说明

CMake Error: CMake can not determine linker language for target:helloworld
CMake Error: Cannot determine link language for target "helloworld".
Run Code Online (Sandbox Code Playgroud)

但是,如果我在我的filsystem上将main.cpp的扩展名更改为main.c,并且src/CMakeLists.txt所有内容都按预期工作.这是从Visual Studio命令提示符(Visual Studio解决方案生成器)和Cygwin终端(Unix Makefile文件生成器)运行的情况.

知道为什么这段代码不起作用?

的CMakeLists.txt

PROJECT(HelloWorld C)
cmake_minimum_required(VERSION 2.8)

# include the cmake modules directory
set(CMAKE_MODULE_PATH ${HelloWorld_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})

add_subdirectory(src)
Run Code Online (Sandbox Code Playgroud)

SRC /的CMakeLists.txt

# Include the directory itself as a path to include …
Run Code Online (Sandbox Code Playgroud)

c c++ cmake

70
推荐指数
6
解决办法
11万
查看次数

是否可以在cgo CFLAGS注释中使用环境变量?

我正在尝试为Go语言编写一些C绑定,并且在Windows中设置Cgo编译时遇到了一种棘手的情况.我的代码如下所示:

// #cgo windows CFLAGS: -I C:/dev/extlibs/include/
// #cgo windows LDFLAGS: -lMyLib -L C:/dev/extlibs/lib/
// #include <mylib/mylib.h>
import "C"
Run Code Online (Sandbox Code Playgroud)

这让我避免安装的DLL库和头文件直接到我的C:\ Windows目录,但是当其他开发人员使用不同的文件系统设置程序(它们都需要库是工作不允许太多的灵活性在C:/ dev/extlibs/...).

有没有办法可以从代码中引用环境变量?也许是这样的:

// #cgo windows CFLAGS: -I $EXTLIBS$/include/
Run Code Online (Sandbox Code Playgroud)

还是有另一种方式让人们解决我错过的这个问题?我花了一些时间在这个主题上搜索,并没有看到很多有用的东西,所以任何信息和/或资源都可以成为真正的帮助!

linker go cgo

13
推荐指数
2
解决办法
1万
查看次数

随机世界的数据结构

所以,我正在考虑制作一个简单的随机世界发生器.这个发生器将创建一个起始"细胞",它将具有一到四个随机出口(在基本方向,类似于迷宫).那些决定退出后,我会在每一位的出口的一个新的随机"细胞",并重复每当玩家将获得近尚未生成的世界的一部分.这个概念将允许一个"无限"的世界,所有这些都是随机生成的; 但是,我不确定如何在内部最好地代表这一点.

我正在使用C++(这并不重要,我可以实现任何必要的数据结构).起初我以为使用排序向图,其中每个节点会围绕着它向边各小区,但这个如果用户发现在世界上的斑点,回溯,回来到可能会无法正常工作从另一个方向发现.世界可能会做一些奇怪的事情,例如在一个位置生成两个单元格.

关于什么样的数据结构可能对这种情况最有效的任何想法?或者我是否在为随机的世界一代做一些非常愚蠢的事情?

任何帮助将不胜感激.谢谢,克里斯

c++ data-structures

8
推荐指数
2
解决办法
764
查看次数

如何在使用自定义窗口镶边时向WPF标题栏添加按钮?

我正在尝试创建一个简单的按钮模板,其中按钮通常看起来像一条水平线,但当鼠标悬停时,按钮将在其后面显示"矩形"颜色填充.这是我的代码,但我似乎无法触发触发器.

<Window x:Class="TestStylingWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <WindowChrome.WindowChrome>
        <WindowChrome CaptionHeight="36" GlassFrameThickness="0 0 0 1" ResizeBorderThickness="5" />
    </WindowChrome.WindowChrome>

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="36" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <Button Height="36" Width="36" 
                    HorizontalAlignment="Center" VerticalAlignment="Center"
                Grid.Row="0">
            <Button.Template>
                <ControlTemplate>
                    <Grid>
                        <Rectangle x:Name="PART_ButtonBackgroundRectangle" Fill="LightGray" Width="36" Height="36" Opacity="0" />
                        <Path x:Name="PART_ButtonPath" Data="M10,26 L26,26" Stroke="DarkGray" StrokeThickness="1.5" />
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger SourceName="PART_ButtonBackgroundRectangle" Property="IsMouseOver" Value="True">
                            <Setter TargetName="PART_ButtonBackgroundRectangle" Property="Opacity" Value="1" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我的触发器不起作用,或者更好的方法来做到这一点?我是WPF的新手,并想重构它(以便在许多按钮中使用它),但我不确定如何.

更新:好的,所以我想这似乎是因为按钮位于窗口的标题栏内.这有什么好办法吗?也许是一种设置按钮的点击/悬停优先级的方法?

c# wpf xaml

8
推荐指数
1
解决办法
5463
查看次数

Eclipse CDT"新类"模板

我已经使用Eclipse CDT一段时间了,我喜欢它,但有一些乏味的事情我想解决它.

创建新文件时,其中一个选项是"新建" - >"类".我想知道是否有人知道编辑这个"类"模板的"$ {declarations}"部分的方法.

更具体地说,我查看了"窗口" - >"首选项"菜单,但无法找到任何内容.我更改了"C/C++" - >"代码样式" - >"代码模板"和"C/C++" - >"编辑器" - >"模板".实际上只有两个中的第一个似乎改变了创建类时出现的内容,并且它不允许我更改"$ {declarations}"部分中的内容.有谁知道如何改变这个?

谢谢,克里斯

templates eclipse-cdt

7
推荐指数
1
解决办法
7761
查看次数

如何使用ANTLR区分保留字和变量?

我正在使用ANTLR来标记一个简单的语法,并需要区分一个ID:

ID              : LETTER (LETTER | DIGIT)* ;

fragment DIGIT  : '0'..'9' ;
fragment LETTER : 'a'..'z' | 'A'..'Z' ;
Run Code Online (Sandbox Code Playgroud)

和一个RESERVED_WORD:

RESERVED_WORD : 'class' | 'public' | 'static' | 'extends' | 'void' | 'int' | 'boolean' | 'if' | 'else' | 'while' | 'return' | 'null' | 'true' | 'false' | 'this' | 'new' | 'String' ;
Run Code Online (Sandbox Code Playgroud)

假设我在输入上运行词法分析器:

class abc
Run Code Online (Sandbox Code Playgroud)

我收到两个用于"class"和"abc"的ID令牌,而我希望"class"被识别为RESERVED_WORD.我怎么能做到这一点?

antlr antlr3

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

使用Moq模拟C#计时器

我正在尝试创建一个注入了依赖项的WPF MVVM视图模型System.Timing.Timer,并希望使用Moq测试视图模型.

我在Timer具有接口的类中编写了一个薄的包装器ITimer,但我不确定真正测试计时器对类的贡献的最佳方法.是否有一种很好的方法可以"逼迫"模拟过去的事件?别人有更好的技术吗?

c# unit-testing moq

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

MSVC:手动使用 link.exe

我正在尝试使用测试 C++ OpenGL/SDL 项目设置名为 Waf 的构建系统,但在链接过程中遇到了一些问题。据我所知,所有库都已正确找到,并添加到链接命令中,但链接过程似乎就像库未链接一样。

为了尝试调试该过程,我尝试手动运行编译/链接过程,以便准确了解它如何与 MSVC 配合使用,但我仍然遇到问题。当我运行以下 LINK.exe 命令时:

PS C:\Users\covertcj\Documents\projects\test> & "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\amd64\LINK.exe"
/NOLOGO /MANIFEST /SUBSYSTEM:CONSOLE /MACHINE:x64 /VERBOSE
.\build\src\main.cpp.1.o 
/OUT:.\build\test.exe
/LIBPATH:C:\Users\covertcj\Documents\projects\test\lib /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib" /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64" 
opengl32.lib sdl.lib sdlmain.lib
Run Code Online (Sandbox Code Playgroud)

我得到和平常一样的错误:

main.cpp.1.o : error LNK2019: unresolved external symbol SDL_CreateWindow referenced in function SDL_main
main.cpp.1.o : error LNK2019: unresolved external symbol SDL_DestroyWindow referenced in function SDL_main
main.cpp.1.o : error LNK2019: unresolved external symbol SDL_GL_CreateContext …
Run Code Online (Sandbox Code Playgroud)

c++ linker visual-c++

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

在WPF中以编程方式添加"Red Squiggle"下划线

可能重复:
FlowDocument中的波浪下划线

我有一个表单,我需要能够以编程方式添加红色波浪线错误下划线以在流文档中运行,但实际上不知道从哪里开始.有人能指出我正确的方向吗?

c# wpf

5
推荐指数
0
解决办法
83
查看次数

如何使用python在ANTLR中执行自定义错误报告?

我正在为我的编译器类编写一个简单的解析器(只是一个概念证明,我可以让工具工作)并且正在使用带有python绑定的ANTLR.我已经得到了我们琐碎的语法来正确地标记和解析,但我也希望以自定义的方式处理错误.根据ANTLR文档(更具体地说:http://www.antlr.org/wiki/display/ANTLR3/Error+reporting+and+recovery),我可以将以下代码放在我的语法文件中:

@members {
    private List<String> errors = new LinkedList<String>();
    public void displayRecognitionError(String[] tokenNames,
                                        RecognitionException e) {
        String hdr = getErrorHeader(e);
        String msg = getErrorMessage(e, tokenNames);
        errors.add(hdr + " " + msg);
    }
    public List<String> getErrors() {
        return errors;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这是一个Java示例,我似乎无法在python中复制(我可以复制代码,但实际上似乎无法让它运行).有谁知道我怎么会这样做?

python antlr antlr3

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

标签 统计

c# ×3

c++ ×3

antlr ×2

antlr3 ×2

linker ×2

wpf ×2

c ×1

cgo ×1

cmake ×1

data-structures ×1

eclipse-cdt ×1

go ×1

moq ×1

python ×1

templates ×1

unit-testing ×1

visual-c++ ×1

xaml ×1