小编Yan*_*ang的帖子

如何使用link.exe静态链接

我一直试图使用Visual Studio 2008命令行工具静态链接到Windows上名为Poco的C++库.

我建立我的程序:

cl /I..\poco\lib /c myapp.cpp
link /libpath:..\poco\lib myapp.obj PocoNet.lib
Run Code Online (Sandbox Code Playgroud)

这导致在运行时需要PocoNet.dll和PocoFoundation.dll的exe.

我花了一些时间阅读Windows中的链接,并学习cl /MT静态链接标准库,同时cl /MD动态链接.

我试图指明/MT,但这似乎没有改变任何东西; 我的应用程序仍然需要Poco DLL.(我也怀疑这/MT是默认行为.)

展望下..\poco\lib,我发现也有一个PocoNetmt.lib,但指定,而不是PocoNet.lib的结果在一堆LNK2005错误("已定义")的:

msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in exp.obj
Run Code Online (Sandbox Code Playgroud)

然后我尝试堆叠更多的标志:

  • /verbose:lib:有用于查看正在发生的事情

  • /Zl:和以前一样的结果

  • /nodefaultlib:libcmt.lib /nodefaultlib:msvcprt.lib:得到了这个错误:

    PocoFoundationmt.lib(Exception.obj) : warning LNK4217: locally defined symbol ??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ (public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)) imported in function __ehhandler$??0Exception@Poco@@QAE@ABV01@@Z
    
    Run Code Online (Sandbox Code Playgroud)
  • .lib …

c++ linker static poco visual-c++

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

无法在Ubuntu 10.04上安装rJava 0.9

我使用来自CRAN apt repo的R 2.13用于Ubuntu 10.04,我正在尝试安装Deducer,它需要JGR/rJava,但是rJava拒绝构建/安装,抱怨无法构建JNI应用程序.我sudo R CMD javareconf按照建议尝试,但只导致关于配置未设置的不同错误.我发现R:rJava包安装失败,所以我尝试了安装的建议r-cran-rjava(但是0.8和Deducer/JGR似乎坚持安装0.9)并摆弄我$JAVA_HOME,一切都无济于事.有任何想法吗?

以下是发生的事情的更完整的记录:

$ sudo aptitude install r-cran-rjava
...
$ R

R version 2.13.1 (2011-07-08)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

  Natural language support but running in an English locale

R is …
Run Code Online (Sandbox Code Playgroud)

r rjava

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

为什么Java有这么大的足迹?

Java - 或者至少是Sun的Hotspot JVM - 长期以来因拥有非常大的内存占用而闻名.究竟是什么使JVM获得了这种声誉呢?我对详细的细分感兴趣:运行时(JIT?GC /内存管理?类加载器?)有多少内存与JNI/JVMTI等"辅助"API有关?标准库?(哪些部分得到多少?)任何其他主要组件?

我意识到如果没有具体的应用程序和VM配置,这可能不是直截了当的,所以只是为了至少在某种程度上缩小范围:我主要对默认/典型VM配置和基线控制台"Hello world"应用程序感兴趣以及任何真实的桌面或服务器应用程序.(我怀疑JVM的大部分内容在很大程度上独立于应用程序本身,而且在这部分我想要放大,理想情况下.)

我还有其他一些密切相关的问题:

  • 其他类似的技术,例如.NET/mono,并没有表现出几乎相同的足迹.为什么会这样?

  • 我已经在intarwebs的某个地方读到,很大一部分足迹只是由于标准库的大小.如果是这种情况,那么为什么要预先加载这么多标准库呢?

  • 是否有任何努力(JSR,无论如何)来驯服内存占用?我遇到的最接近的事情是减少JVM的磁盘占用空间的项目.

  • 我确信在过去的十年左右,每个新版本的Java都会有足够的空间.是否有任何特定的数字/图表精确记录了JVM的足迹变化多少?

java memory footprint

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

在sbt中添加jar URL作为依赖的简单方法

有没有办法让sbt(0.10)在某个URL(http://foo.com/bar-1.1.jar)上声明一个jar作为库依赖?

dependencies jar sbt

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

如何让sbt`console`使用-Yrepl-sync?

Scala 2.9.1中的新增功能是-Yrepl-sync选项,它可以防止每个REPL行在新线程中运行:

scala -Yrepl-sync
Run Code Online (Sandbox Code Playgroud)

当我console从sbt 运行时,我如何通过它?

scala sbt read-eval-print-loop

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

Google Chrome中本机PDF查看器的源代码在哪里?

似乎无法在行李箱中找到它.这实际上是开源Chromium项目的一部分吗?或者它的来源实际上并未发布?只提到我能找到:

http://www.listware.net/201007/chromium-discuss/93274-chromium-discuss-chrome-pdf-viewer-source.html

pdf google-chrome chromium

11
推荐指数
1
解决办法
6912
查看次数

如何在Linux上动态插入Python的C函数(没有LD_PRELOAD)?

我如何在运行时(否LD_PRELOAD)拦截/挂钩C函数,就像fopen()在Linux上一样,对于Windows来说是一个很好的选择?我想从Python中做到这一点(因此,我假设该程序已经在运行CPython VM)并且还要重新路由到Python代码.我只是挂钩共享库函数.我也想这样做而不必改变程序的运行方式.

一个想法是基于ptrace()或重写dlsym()PLT中或在PLT中找到的代码以及目标ctypes生成的C可调用函数来推送我自己的工具,但我想我先问这里.谢谢.

python linux library-interposition

11
推荐指数
1
解决办法
2141
查看次数

SQL的替代品?(关系数据库的替代声明性查询语言?)

我刚刚遇到HTSQL,这让我想起了一个我想知道的问题:关系数据库的替代声明查询语言是什么?对于针对SQL存在的所有抱怨,我会期待很多,但谷歌搜索一直没有用.

各种编程语言都有list/monad理解,但我更具体地看一下具有关系数据库实际实现的东西.突出它们与SQL(可读性,模块性,简洁性等)的主要差异也是很好的.实现也需要是开源的,理想情况下我可以实际使用现有的RDBMS,例如Postgresql.

sql

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

在Scala REPL中导入多个包

在Scala中,我经常需要导入多个包含implicits和其他实用程序的包,特别是在REPL上:

import scala.collection.JavaConversions._
import scala.collection.{mutable => mut}
import com.myapp.db._
import com.orm._
val con = connectDb(...)
...
Run Code Online (Sandbox Code Playgroud)

我知道在Scala中无法导入多个包(虽然包对象范围可以帮助一点),但是从REPL呢?有没有办法在没有大量复制和粘贴的情况下从REPL执行此操作?我也试过使用:load,但在那里导入/创建的东西也没有被引入REPL的范围.我注意到:power命令确实将内容导入范围.

更新::load实际上确实有效.

scala read-eval-print-loop

11
推荐指数
1
解决办法
4423
查看次数

使VisualVM显示行号

我正在使用VisualVM来分析已使用默认的-g:vars编译的Scala程序,其中包含行号(通过javap验证类文件具有行号).但是,VisualVM在其任何分析中都没有显示任何行号,只显示方法名称.有没有办法让它显示文件和行号?使用VisualVM 1.3.2(如果重要的话:Sun JDK 6和Scala 2.9.0.1).

visualvm

10
推荐指数
1
解决办法
557
查看次数