问题列表 - 第26095页

Autoconf - 包括一个静态库(新手)

我正在尝试将我的应用程序从手动构建迁移到autoconf,到目前为止它工作得非常好.但我有一个静态库,我无法弄清楚如何集成.该库不会位于通常的库位置 - 二进制文件(.a文件)和头文件(.h文件)的位置将作为configure参数给出.(值得注意的是,即使我将.a文件移动到/ usr/lib或我能想到的任何其他地方,它仍然无法工作.)它也没有传统命名(它不以"lib"或"l"开头) ").

手动编译正在使用这些(目录不可预测 - 这只是一个例子):

gcc ...  -I/home/john/mystuff  /home/john/mystuff/helper.a
Run Code Online (Sandbox Code Playgroud)

(呃,我实际上不明白为什么直接引用.a文件,而不是-L或者其他任何东西.是的,我对构建C程序有一种半生不熟的理解.)

因此,在我的configure.ac中,我可以使用相关的configure参数使用AC_CHECK_HEADER成功找到标头(.h文件).在AC_CHECK_HEADER中我然后将位置添加到CPFLAGS并且实际C代码中的头文件的#include很好地拾取它.

给定一个已放入$ location的configure参数,并且所需文件的名称是helper.h和helper.a(它们都在同一目录中),到目前为止这是有用的:

AC_CHECK_HEADER([$location/helper.h], 
    [AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h]) 
    CFLAGS="$CFLAGS -I$location"])
Run Code Online (Sandbox Code Playgroud)

我遇到困难的地方是链接二进制文件(.a文件).无论我尝试什么,我总是得到一个关于该库函数调用的未定义引用的错误.我很确定这是一个链接问题,因为我可以对C代码大惊小怪,并在对该库的函数调用中产生故意错误,该错误会产生早期错误,表明函数原型已经加载并用于编译.

我尝试将包含.a文件的位置添加到LDFLAGS,然后执行AC_CHECK_LIB,但找不到它.

也许我的语法错了,或者我错过了一些更基本的东西,这并不奇怪,因为我是一个新手并且不知道我在做什么.

这是我尝试过的:

AC_CHECK_HEADER([$location/helper.h], 
    [AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h]) 
    CFLAGS="$CFLAGS -I$location"; 
    LDFLAGS="$LDFLAGS -L$location"; 
    AC_CHECK_LIB(helper)])
Run Code Online (Sandbox Code Playgroud)

没有骰子.AC_CHECK_LIB正在寻找-lhelper我猜(或libhelper?)因此我不确定这是否有问题,所以我也试过了(省略AC_CHECK_LIB并直接在LDFLAGS中包含.a),没有运气:

AC_CHECK_HEADER([$location/helper.h], 
    [AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h]) 
    CFLAGS="$CFLAGS -I$location"; 
    LDFLAGS="$LDFLAGS -L$location/helper.a"])
Run Code Online (Sandbox Code Playgroud)

为了模拟手动编译,我尝试删除-L但这没有帮助:

AC_CHECK_HEADER([$location/helper.h], 
    [AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h]) 
    CFLAGS="$CFLAGS -I$location"; 
    LDFLAGS="$LDFLAGS $location/helper.a"])
Run Code Online (Sandbox Code Playgroud)

我尝试了其他组合和排列,但我想我可能会遗漏一些更基本的东西......

================更新

我使用_LDADD在Makefile.am中使用硬编码的.a文件路径,如下所示:

myprog_LDADD=/home/john/mystuff/helper.a
Run Code Online (Sandbox Code Playgroud)

但我无法预测.a文件的位置.出于某种原因,在configure.ac中定义myprog_LDADD不起作用(我希望它可以,所以我可以使用我的动态位置变量),并且没有LDFLAGS,myprog_LDFLAGS,AM_LDFLAGS的更改组合似乎工作.

如果,在Makefile.am中,我尝试使用configure.ac中定义的变量位置,它不起作用

myprog_LDADD=($location)helper.a
Run Code Online (Sandbox Code Playgroud)

================更新

我想我已经明白了,但由于我不知道我在做什么,我真的很感激一些反馈.我使用AC_SUBST()从configure.ac获取myprog_LDADD,因此最终解决方案如下所示:

AC_CHECK_HEADER([$location/helper.h], 
    [AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h]) 
    CFLAGS="$CFLAGS -I$location" 
    myprog_LDADD="$location/helper.a" 
    AC_SUBST(myprog_LDADD)])
Run Code Online (Sandbox Code Playgroud)

autoconf autotools

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

在JS中获取元素标记名称的最佳方法是什么?

我想得到某个标签的名称(告诉它是否为div/input/span/p/so)

我发现有3个不同的属性给我标签名称:

tagName,nodeNamelocalName

我的问题是:哪一个在所有浏览器中最受支持?和/或是否有一种方法来获取Prototype中的标签名称(我看了但找不到)?

html javascript prototypejs

24
推荐指数
1
解决办法
4708
查看次数

点击事件上的jQuery发送POST请求

尝试使用jQuery在点击事件上发送POST请求而没有运气.这是我使用的:

    <script type="text/javascript">
        $('#taxi_update').click(
            $.ajax({
                'type':'POST',
                'data':'id=17446&chru=0',
                'success':function() { ... },
                'error':function(){ ... },
                'url':'/url/',
                'cache':false
            })
        );
    </script>
    <a href="#" id="taxi_update">update</a>
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不发送任何POST请求.

有什么建议可能有什么问题吗?

ajax jquery post

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

Eclipse的Visual Studio Ctrl + Tab和Ctrl + Shift + Tab等效

在Visual Studio中,我总是使用Ctrl+ TabCtrl+ Shift+ Tab在文档之间导航.我看到Eclipse有Ctrl+ F6在编辑器之间导航,但这并不是几乎相同的行为.区别在于,按一次然后再按一次将使您在两个文件之间来回移动,而在VS中,它将使您根据编辑器中的Tab键顺序向前导航.关于如何复制VS的行为的任何想法?

eclipse navigation keyboard-shortcuts

22
推荐指数
1
解决办法
7060
查看次数

仅通过移位乘以负整数

我试图找到一种方法来将整数值与负值相乘,只是位移.

通常我通过使用最接近我的因子的2的幂进行移位并且仅添加/减去其余部分,例如 x * 7 = ((x << 3) - x)

假设我想计算x * -112.我能想象的唯一方法是-((x << 7) - (x << 4),计算x * 112并在之后否定它.

有没有"更漂亮"的方式来做到这一点?

c

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

如何确定十进制/双精度是否为整数?

如何判断小数或双精度值是否为整数?

例如:

decimal d = 5.0; // Would be true
decimal f = 5.5; // Would be false
Run Code Online (Sandbox Code Playgroud)

要么

double d = 5.0; // Would be true
double f = 5.5; // Would be false
Run Code Online (Sandbox Code Playgroud)

我想知道这个的原因是我可以通过编程方式确定是否要使用.ToString("N0")或输出值.ToString("N2").如果没有小数点值,那么我不想显示.

c#

210
推荐指数
7
解决办法
18万
查看次数

如何从BindingResult获取控制器中的错误文本

我有一个返回JSON的控制器.它采用一种形式,通过弹簧注释验证自己.我可以从BindingResult获取FieldError列表,但它们不包含JSP将在标记中显示的文本.如何将错误文本发送回JSON?

@RequestMapping(method = RequestMethod.POST)
public
@ResponseBody
JSONResponse submit(@Valid AnswerForm answerForm, BindingResult result, Model model, HttpServletRequest request, HttpServletResponse response) {

    if (result.hasErrors()) {
        response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
        JSONResponse r = new JSONResponse();
        r.setStatus(JSONResponseStatus.ERROR);
        //HOW DO I GET ERROR MESSAGES OUT OF BindingResult??? 
    } else {
        JSONResponse r = new JSONResponse();
        r.setStatus(JSONResponseStatus.OK);
        return r;
    }

}
Run Code Online (Sandbox Code Playgroud)

JSONREsponse类只是一个POJO

public class JSONResponse implements Serializable {
    private JSONResponseStatus status;
    private String error;
    private Map<String,String> errors;
    private Map<String,Object> data;

...getters and setters...
}
Run Code Online (Sandbox Code Playgroud)

调用BindingResult.getAllErrors()返回FieldError对象的数组,但它没有实际的错误.

java spring json spring-mvc spring-annotations

25
推荐指数
3
解决办法
6万
查看次数

部署到SharePoint时,ObjectDataSource无法找到类型

将包含ASP.NET页面的功能部署到开发SharePoint服务器时,我收到以下错误:

System.InvalidOperationException:找不到ObjectDataSource'odsYears'的TypeName属性中指定的类型.

我们的.dll正在部署到GAC,我们的页面将被部署到12个配置单元中的相应功能目录中.我们在Sandbox SharePoint服务器上没有收到此错误.我拆解了.dll,以确保正在部署该类,一切看起来都不错.

有没有人知道为什么这不适用于我们的某个SharePoint环境?

谢谢.

asp.net sharepoint objectdatasource

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

如何将Maybe-Transformer MaybeT变成MonadWriter的实例?

我正在尝试构建一个MaybeT-Transformer Monad,基于真实世界Haskell,Monad变换器章节中的示例:

data MaybeT m a = MaybeT { runMT :: m (Maybe a) }

instance (Monad m) => Monad (MaybeT m) where
  m >>= f = MaybeT $ do a <- runMT m
                        case a of 
                            Just x -> runMT (f x)
                            Nothing -> return Nothing
  return a = MaybeT $ return (Just a)

instance MonadTrans MaybeT where
  lift m = MaybeT $ do
                     a <- m
                     return (Just a)
Run Code Online (Sandbox Code Playgroud)

这很好,但现在我想让MaybeT成为MonadWriter的一个实例:

instance (MonadWriter w m) …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass monad-transformers

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

帮助在Java中使用Horner的规则和哈希函数?

我正在尝试使用Horner的规则将单词转换为整数.我理解它是如何工作的,如果这个词很长,它可能会导致溢出.我的最终目标是在散列函数h(x)= x mod tableSize中使用转换后的整数.我的书建议,由于溢出,你可以"在计算Horner规则中的每个带括号的表达式之后应用mod运算符." 我并不完全明白这是什么意思.说表达式如下:

((14*32 + 15)*32 + 20)*32 + 5

我是否在每个带括号的表达式后使用mod tableSize并将它们一起添加?这个散列函数和Horner规则的例子会是什么样子?

java hashtable

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