我有一个vhdl设计,需要适应不同的变种.能够从makefile生成配置会很高兴.用于生成一个项目的makefile已准备就绪并正常工作.
我想避免为不同的项目使用不同的非常相似的文件.项目之间的唯一区别是某处有几行,其中一行包含一堆vhdl文件(和组件),而另一组则不需要.
例如,我想避免使用两个不同的顶级vhd文件.相反,我想在顶层文件中使用条件,以包含(或不包含)其他vhdl文件和组件,具体取决于项目.
你有什么建议怎么做吗?
我曾尝试使用外部预编译器(gcc),但无法使其正常工作.此外,我真的不想强迫其他开发人员安装gcc,或者不能在Xilinx IDE中使用vhdl文件.
编辑:添加示例
我有两个产品,A和B.我想为两个产品使用相同的文件,条件为产品B排除某些部件,为不同的HW部件生成配置,当然还有其他东西.
我想从命令行生成配置:
make product_A和make product_B.
如果我generates根据目标输入我的vhdl来包含/排除代码,那么xst需要知道正在构建什么目标.问题是如何将当前目标从makefile传递给xst.
在用gcc编译的C代码中,我输入了源代码:
#if defined(product_B)
...
#elsif defined(product_A)
...
#endif
Run Code Online (Sandbox Code Playgroud)
,然后在makefile中设置define:
product_A: source.c
gcc -Dproduct_A source.c
product_B: source.c
gcc -Dproduct_B source.c
Run Code Online (Sandbox Code Playgroud) 我有一个C/C++程序,它是Firefox的插件.因为它是一个插件,它有非主要入口点.这些入口点需要在C中编译,因为否则会导致名称损坏.但是,其他函数是过载的,所以它们需要是C++.解决方案是外部"C".我已经想通了.
但是,如果我在.c文件周围的外部"C",我会收到链接错误,因为C++文件名称被破坏,但.c文件中的调用没有.至少我认为这是正在发生的事情.
解决方案是将外部"C"放在.h文件周围.这个SEEMS意味着.h文件中声明的函数的名称不会被破坏,即使它们是在(可能是损坏的).c文件中定义的.
然而,对我来说,为什么这会起作用并没有任何意义.这是一块垃圾吗?我是否为以后难以找到的bug做好准备?或者这是解决这个问题的正确方法吗?
我想设置每个TeamCity代理以在代理的工作目录(agent.work.dir)中使用本地存储库(maven.repo.local).是否可以通过这种方式配置maven属性以使用TeamCity属性?
下面的代码段如何打印出"可读性不可读"?afaik a die()应该立即停止一切?
编辑:发布了完整的功能.这是一个功能Zend_Search_Lucene_Storage_File_Filesystem.我们总是得到"文件不可读"的错误.该文件似乎可读,但下面的代码段打印出"可读不可读"
编辑2:抱歉,在我发布的信息中犯了一些错误; 一切都正确了.
public function __construct($filename, $mode='r+b')
{
global $php_errormsg;
if(strpos($mode, 'w') === false) {
die('not readable');
}
else die('readable');
if (strpos($mode, 'w') === false && !is_readable($filename)) {
// opening for reading non-readable file
require_once 'Zend/Search/Lucene/Exception.php';
throw new Zend_Search_Lucene_Exception('File \'' . $filename . '\' is not readable.');
}
$trackErrors = ini_get('track_errors');
ini_set('track_errors', '1');
$this->_fileHandle = @fopen($filename, $mode);
if ($this->_fileHandle === false) {
ini_set('track_errors', $trackErrors);
require_once 'Zend/Search/Lucene/Exception.php';
throw new Zend_Search_Lucene_Exception($php_errormsg);
}
ini_set('track_errors', $trackErrors);
}
Run Code Online (Sandbox Code Playgroud) 对于那些了解一点c的人来说,这只是一个简单的问题.在表达的开头是什么意思?如......
If (this == thisThingOverHere)
ThisThing = *((WORD *) &Array[withThisPosition]);
Run Code Online (Sandbox Code Playgroud)
您可以假设WORD是16位无符号,而Array是8位字节数组.很难尝试找出这里发生的事情.
干杯
到目前为止,在这个项目中我在VS2008/BIDS中有两个报告.第一个包含1个tablix,大约是100k.第二个包含3个tablix(tablices?),约为257k.我可以从VS成功部署较小的报告,我可以从IE中的报告管理器上传它.我可以从Report Manager查看/运行它,我可以从我的浏览器到达报告服务器(Web服务)URL.一切都通过HTTPS完成,证书没有任何问题.
对于较大的报告,我在VS中得到的错误是"操作已经超时"约100秒后.我从IE上传时的错误是"基础连接已关闭:发送时发生意外错误"约130秒后.
在RSReportServer.config文件中,我尝试将Authentication/EnableAuthPersistence从true更改为false并重新启动服务,但仍然收到错误.我将密钥"SecureConnectionLevel"设置为2.将此更改为0并关闭SSL不是一个选项.我在HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters中添加了名为"MaxRequestBytes"的注册表项,并将其设置为5242880(5MB),并按照MSFT的Jin Chen在论坛帖子中的建议重新启动了HTTP和SRS服务.
我仍然无法上传较大的报告.这是在MS SQL 2008和WS 2003上.当我尝试从IE上传时,以下是来自...\Reporting Services\LogFiles的日志文件条目的一部分.
library!WindowsService_0!89c!02/10/2010-07:57:57:: i INFO: Call to CleanBatch() ends ui!ReportManager_0-1!438!02/10/2010-07:59:33:: e ERROR: The underlying connection was closed: An unexpected error occurred on a send. ui!ReportManager_0-1!438!02/10/2010-07:59:34:: e ERROR: HTTP status code --> 500 -------Details-------- System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to write data to the transport connection: An established connection was aborted by the software in your host machine. ---> System.Net.Sockets.SocketException: An established …
我需要知道公共财产(有吸气剂和设定者)是否已经改变.该属性是一个简单的类(没有用户控件/组件等).
是否有一种优雅的方式来订阅某种事件,通知何时财产被更改?
我试着看看微软在他们的Binding对象中做了什么(使用反射器),这让我探索了PropertyDescriptor.AddValueChanged方法,但它对我没用.也许它仅适用于组件/用户控件......
有什么建议?
谢谢,
阿迪巴尔达
在向服务器执行http-get请求时我仍然不明白的一点是使用JS函数encodeURIcomponent来编码http-get的每个组件的优点.
做一些测试我看到服务器(使用PHP)也正确获取http-get请求的值,如果我不使用encodeURIcomponent! 显然我还需要在客户端级别编码特殊字符&?= /:否则像"和平与爱=美德"这样的http-get值将被视为http-get请求的新键值对而不是单个值.但是为什么encodeURIcompenent还会编码许多其他字符,例如'è',它被翻译成%C3%A8,必须使用utf8_decode函数在PHP服务器上解码.
通过使用encodeURIcomponent,http-get请求的所有值都是utf8编码的,因此当在PHP中获取它时,我必须每次在每个$ _GET值上调用utf8_decode函数,这非常烦人.
为什么我们不能只编码&?= /:字符?
另请参见:JS encodeURIComponent结果与FORM创建的结果不同 它表明encodeURIComponent甚至没有正确编码,因为简单的浏览器FORM GET以不同的方式编码像'€'这样的字符.所以我仍然想知道这个encodeURIComponent是什么用的?
我有以下代码:
public class NavigationPath
{
private string menuItems = "<li>" +
"<a href=\"#\">home</a>" +
"</li>";
Run Code Online (Sandbox Code Playgroud)
但我希望:
public class NavigationPath
{
private string menuItems = "<li>" +
"<a href=\"" + ResolveClientUrl("~/home.aspx") + "\">re</a>" +
"</li>";
Run Code Online (Sandbox Code Playgroud)
但是,我无法在Class中使用ResolveClientUrl.有任何想法吗?