标签: preprocessor

需要一些TFS2010的帮助+一个自动Build +'配置来构建=调试'

真.奇怪的.SHIZ.

当我执行TFS Team Build(with Remote Deploy)时,我在网页上的一些#if DEBUG 预处理程序指令代码不会被调用.当我手动 one-click deploy (remote deploy)preprocessor directive代码工作.当我在本地调试时,代码也可以工作.

所以 - 问题看起来与我的配置设置有关Build Template(我想??).所以,这就是我所拥有的: -

alt text http://img256.imageshack.us/img256/4070/59603294.png

没什么太难的.那说... 请善待编译.在'DEBUG'模式下构建我的项目(读取:项目,不是解决方案).

我的代码如下: -

#if DEBUG
    Log.Debug("We are in DEBUG mode.");
#else
    Log.Debug("We are _NOT_ in DEBUG mode.");   
#endif
Run Code Online (Sandbox Code Playgroud)

因此,当调用此代码(在某些aspx页面中)时,它会打印出"我们处于DEBUG模式".什么时候

  • Localhost(Localhost配置:调试)
  • 具有手动一键式重新部署的远程服务器(Localhost Configuration:Debug)

但不是当我让TFS的持续整合开始时.

FML.

我试图看看它是否是CASING情况(即#if debug#if Debug),但它仍然不起作用.

然后我甚至尝试明确地告诉MSBuild配置....

替代文字http://img294.imageshack.us/img294/9970/75495143.png

仍然没有爱.

哦..但这是工友!我ALSO有一些web.config文件转换

  • web.config中
  • web.debug.config
  • web.release.config

...你能猜出哪个文件被转换了?如果你猜对 …

asp.net debugging preprocessor tfs2010

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

在Visual Studio 2008中,是否有一个标识64位Windows操作系统的宏?

这是问题所在:

为了#imp为我的32位程序导入正确版本的ADO,我需要知道我是在32位Windows操作系统(意思是文件在Program Files中)还是在64位操作系统上编译(意思是该文件位于Program Files(x86)中.但我找不到一个宏告诉我这个,甚至一个宏告诉我处理器是64位.

当我在运行Visual Studio 2008 Express的64位Windows 7上测试时,定义了以下相关宏:

_M_IX86
X86

但是似乎没有定义任何*64宏,如果它们指的是/ target/architecture而不是当前机器的架构,我认为就是这种情况.

是否有预处理器宏告诉我是否运行64位Windows操作系统?

如果是这样,它是什么?我甚至会满足于告诉我是否使用64位处理器.

(ps我已经知道这个清单)

更新

到目前为止,人们似乎认为没有这样的宏,并且复制DLL或使用环境变量是更好的事情.

因此,考虑到环境变量提示,我通过将两个文件夹 - Program Files(x86)和Program Files - 放在include路径上并使用#import的尖括号语法解决了开发人员的问题.但是,我怀疑我需要为每个版本的操作系统构建发行版本,因为ADO DLL现在是操作系统的一部分,不可再发行.调查那个.

64-bit preprocessor visual-studio-2008

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

Xcode 4 - 重命名/删除文件,但是找不到'找不到文件'错误

我只是使用Xcode的重构工具将一个核心数据类重命名为Player to Person.修复了因使用Xcode在重命名时遗漏的点符号导致的大约100个错误后,我到了最后一个:

Player.m - 词法或预处理器问题 - 找不到'Person.h'

Player.m不再存在于项目中,并在错误中显示为已删除(空图标).显然,既然我摆脱了它,我不希望它再存在!

为了解决这个问题,我尝试重新添加Player.h和Player.m的旧副本,以及清理.我检查了Build Phases-> Compile Sources部分,Person.m在那里,Player.m不是.Person.h确实存在.

不确定它是否重要,但我使用mogenerator来生成我的核心数据类.此外,这是我的第三个xcdatamodel版本.版本1和2使用了Player.h.

以下是错误的屏幕截图: Player.m  - 词法或预处理器问题 - 找不到'Person.h'

iphone preprocessor file-not-found lexical xcode4

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

Pycparser 无法处理预处理代码

我需要在预处理的 C 代码('gcc -E' 产生的结果)上使用 pycparser。但是,我目前遇到了无法理解或解决的问题。

我正在使用提供的示例 year2.c 和 func_defs.py,我对其进行了修改以使用各种预处理器和假库,但无济于事。也许你们中的一些人可以研究一下,看看你是否可以重现/解决这个问题。我将附加所有必要的代码。

错误是使用 year2.c(常规示例文件)和 year2.i('gcc -E' 输出)生成的。后者没有可用的结果,而前者同时使用预处理器/fakelib 变体。

我创建了一个包含所有相关错误的 bitbucket 存储库、使用的脚本(尽管只是它的最后一个变体)以及 year2.c 和 year2.i 文件。

错误和样本回购

谢谢你的时间。

preprocessor python-2.7 pycparser

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

在 Swift 中检查协议可用性

我正在采用 WatchConnectivity,但我仍然支持没有此库的 iOS7 和 iOS 8。此外,我采用的协议 WCSessionDelegate 也不支持,但这个较旧的系统。在 ObjectiveC 中,我会使用预处理指令来屏蔽不支持它们的版本的声明和协议采用。我如何在 Swift 中处理这个问题,以便应用程序不会在旧系统上崩溃?

preprocessor protocols ios swift watchconnectivity

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

为什么C还要提供类型定义?

我遇到了以下问题,我找不到任何具体的解释:为什么C打扰提供类型定义?是不是定义BOOL宏与定义Bool类型一样好typedef

例如,#define指令可用于创建可用作布尔类型的宏:

#define Bool int
Run Code Online (Sandbox Code Playgroud)

还有另一种使用称为类型定义的功能来设置布尔类型的方法.

typedef int Bool;
Run Code Online (Sandbox Code Playgroud)

为什么最后一种方法更受欢迎?有什么好处?

c preprocessor typedef

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

在 Beanshell 预处理器中停止 JMeter 测试

我需要一种方法来阻止我的主要示例的执行并停止我的测试。

我已经在 stackoverflow 上阅读了这篇文章,但这并不妨碍主示例的执行。JMeter - 从 BeanShell 预处理器中停止线程

我在 JMeter 3.2 中有一个 HTTP 采样器(可以是除 BeanShell 采样器之外的任何其他示例),其中包含以下代码行的 BeanShell 预处理器:

org.apache.jmeter.engine.StandardJMeterEngine.stopThread(Thread.currentThread().getName()); 
Run Code Online (Sandbox Code Playgroud)

现在这确实停止了我的测试,但不是在执行主示例之后。所以我需要一些东西来停止我的测试并防止主样本被执行。

任何帮助将不胜感激!

java preprocessor jmeter beanshell

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

在python中删除包含字母和数字的字符串

我有一个字符串

c=("Snap-on Power M1302A5 Imperial,IMPRL 0.062IN")
Run Code Online (Sandbox Code Playgroud)

我需要将上面的字符串转换为

c=("Snap-on Power Imperial,IMPRL")
Run Code Online (Sandbox Code Playgroud)

即我需要删除同时包含字母和数字的字符串,

我怎么能在python中做到这一点?

我试过

c=c.apply(word_tokenize)
c = c.apply(lambda x: [item for item in x if item.isalpha()])
Run Code Online (Sandbox Code Playgroud)

但得到了输出

c=("Snap-on Power MA Imperial,IMPRL IN")
Run Code Online (Sandbox Code Playgroud)

python preprocessor isalpha

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

为什么预处理器需要大括号才能有语句?

有这个代码:

#define GREATER(a, b, res) ( \ /* no braces here */
    asm("cmp %1, %2\n\t" \
         "jge 0f\n\t" \
         "movl %1, %0\n\t" \
         "jmp 1f\n" \
         "0:\n\t" \
         "movl %2, %0\n" \
         "1:" \
         : "=r"(res) \
         : "r"(a), "r"(b)); )
Run Code Online (Sandbox Code Playgroud)

错误: c.c:4:2: error: expected expression before ‘asm’ asm("cmp %1, %2\n\t" \

但是这个(只更改了大括号,其他所有内容都保留了 - 代码在其他方面是正确的):

#define GREATER(a, b, res) ({ \ /* used braces here - correct */
    asm("cmp %1, %2\n\t" \
         "jge 0f\n\t" \
         "movl %1, %0\n\t" \
         "jmp …
Run Code Online (Sandbox Code Playgroud)

c preprocessor inline-assembly

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

如何通过 Erlang 的预处理器有条件地排除整个子句?

我正在用 Erlang 编写一些应该在各种 OTP 版本上编译的模块。在某些情况下,我想使用旧版本中不受支持的++操作符模式,但前提是它可用。因此,我对这项任务的尝试如下:

f([]) -> empty;
f([_|_]) -> cons;
-if(?OTP_RELEASE >= 23).
f([] ++ _) -> empty_append;
-endif.
f(X) -> error(nah).
Run Code Online (Sandbox Code Playgroud)

我发现的这个问题的解决方法是:

  • 将 iffed 子句移到开头。然而,这在以下情况下效果不佳:

    • 我需要添加更多-ifs
    • 条款的顺序禁止我以任何理由这样做。
  • 创建一个美丽的 ifelses 花园,并多次复制整个函数。显然,这不会通过。

有什么方便的方法吗?如果可能的话,我希望有一个通用的解决方案,不限于所呈现的情况。

macros erlang preprocessor

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