小编SRo*_*mes的帖子

gcc - 带有未定义符号的静态库?

我正在尝试使用静态库构建项​​目,以便即使未安装库也可以使用二进制文件.但是,当我尝试这样做时,我收到很多关于未定义符号的错误.

看看这个库,我看到它有很多未定义的符号,即使它是一个.a静态库:

nm - u /usr/local/lib/libthis.a
....
U EVP_DigestFinal_ex
U EVP_DigestInit_ex
U EVP_DigestUpdate
U EVP_MD_CTX_cleanup
U EVP_MD_CTX_init
Run Code Online (Sandbox Code Playgroud)

那些似乎是来自openssl; 其他人似乎来自libbzip2; 等等

问题:1.为什么static(.a)lib依赖于非静态编译的共享对象(例如libopenssl)?2.我该如何解决这个问题?尝试手动添加-lssl似乎不起作用.如何编译二进制文件而不具有外部依赖性?

linker gcc shared-libraries static-libraries static-linking

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

Java Servlet - 将servlet映射到每个URL而不是字符串

我有一个配置为处理所有URL(*)的servlet :

<servlet>
    <servlet-name>MyServ</servlet-name>
    <servlet-class>MyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>MyServ</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我需要为URLS开头/static/,它应该从静态服务它们WEB-INF.也就是说,MyServ应该成为一切不过 /static.

我怎样才能做到这一点?


更新:澄清一下,我想要的是:

/*/- 转到MyServ
/static/dir/file.css- Jetty从/ dir /提供静态file.css.

我不确定要做什么的web.xml,或者放置静态文件的位置.

我尝试添加这个:

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

但是,当我转到/static/URL时,我得到:

HTTP ERROR 404

Problem accessing /static/dir/file.css. Reason: 
    Not Found

Powered by Jetty://
Run Code Online (Sandbox Code Playgroud)

我不知道如果我的web.xml文件是错误的,或者如果我只是把文件在错误的地方(我已经下试过src/main/webappsrc/main/webapp/lib/META-INF/resources/)


码头

我正在使用Jetty.我想避免任何其他层,如Nginx,Apache等.

为了赢得赏金,请确保您回答Jetty的作品.

java servlets

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

在C++中进行尾递归

如果我进行尾调用递归(而不是for (;;)...break循环),我的函数可以更简单地编写.但是,如果编译器无法优化它,我恐怕会遇到性能问题,特别是因为它将由最终用户编译.

  1. 有没有办法告诉编译器"确保你优化这个尾调用,否则给我一个错误"(例如Scala支持这个)

  2. 如果编译器无法优化它,那么性能限制是什么?关于有多少尾调用可以在不打破堆栈的情况下运行?


更新:

编译器是gcc和MSVC.

通常,我会期待大约十几个尾调用.但极端情况下可能有数千人.平台是典型的低端笔记本电脑(例如Core i3或i5).

c++ optimization recursion tail-call-optimization

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

git - 我如何拉动和合并我的未经修改的变化?

在处理一些未提交的文件时,我需要提取新代码.有冲突,所以git拒绝拉:

error: Your local changes to the following files would be overwritten by merge:
        ...
Please, commit your changes or stash them before you can merge.
Run Code Online (Sandbox Code Playgroud)

问题1:如何提取和合并我的未经修改的更改?我需要继续工作,我还没准备好提交,但我想要外部代码?

问题2:我最后做了一个stash跟随a pull.我现在如何将我的更改合并到新拉?如何在不破坏拉动的新变化的情况下应用我的藏品?

git

9
推荐指数
1
解决办法
6385
查看次数

如何在GNU Autotools项目中包含Boost?

我的项目使用GNU autotools(aclocal && autoconf && ./configure && make)编译.我想使用Boost,我希望其他人也可以编译它.

  1. 我应该将Boost放在项目的目录中,还是依赖系统的Boost?
  2. 我该如何告诉autotools使用Boost?我用谷歌搜索并发现许多m4文件声称这样做 - 但我应该把那些m4文件放在哪里?我可以在我的/usr/share/aclocal目录中存储一个,但这对使用其他想要编译项目的人没有帮助./configure && make.

c++ boost makefile autotools

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

Gradio - 删除标语

Gradio 包括一个口号“用 Gradio 构建”。我怎样才能删除它?

如果由于某种原因省略了这个选项,是否有猴子补丁可以做到这一点?

gradio

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

GZIP或DEFLATE可以增加文件大小的最大值是多少?

众所周知,GZIP或DEFLATE(或任何压缩机制)有时会增加文件大小.是否可以增加文件的最大值(百分比或常量)?它是什么?

如果一个文件是X字节,并且我要gzip它,我需要提前预算文件空间 - 最糟糕的情况是什么?

更新:有两个开销:GZIP添加一个标头,通常是18个字节,但基本上是任意长的.DEFLATE怎么样?这可以通过乘法因子扩展内容,我不知道.有谁知道它是什么?

compression gzip deflate information-theory libz

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

调试 Thunderbird 扩展

我正在开发一个 Thunderbird 扩展程序,不幸的是,我无法从哪些内容中区分出哪些仍然有效。网上有很多东西,但是,其中大部分不再适用于最近的 Thunderbird。

  1. 至少,我需要一种从扩展中查看日志消息的方法,以便我可以看到哪些有效,哪些无效。理想情况下,我想要一个完整的调试控制台。Stackoverflow 上有对 Thunderbird Developer Tools 的参考,但似乎没有下载它们的方法。

  2. 我还希望能够执行可以通过控制台引用我的扩展程序的 Javascript。当我通过 Thunderbird 的控制台尝试此操作时,我收到错误消息。即使在使用其他人的扩展时我也会得到这个,所以我必须假设扩展超出了控制台的范围

如何获得新的 Thunderbird 扩展的可见性和交互性?

thunderbird thunderbird-addon

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

了解Delphi和C++ Builder中的TBitmap.Scanline

Delphi和C++ Builder有一个带有Scanline属性的TBitmap类,它返回位图像素的内存.当我查看BMP文件的十六进制编辑器时,这似乎有所不同.

我正在尝试将C++ Builder应用程序移植到Java,并希望了解Scanline中的算法.如果我有文件,我如何生成像Scanline那样的内存阵列?Scanline背后的确切规格是什么?

Clarifcation:BMP是Windows 24bit DIB.我在代码中没有提供任何其他信息; C++ Builder似乎将它加载到某种类型的内存结构中,但它不是逐字节的.想知道那个结构的规格是什么.

delphi porting vcl bitmap c++builder

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

获取Jupyter笔记本以实时显示Matplotlib图形

我有一个运行较长的Python循环(用于机器学习),该循环定期打印输出并显示图形(使用matplotlib)。在Jupyter Notebook中运行时,所有文本(stdout)都是实时显示的,但是所有数字都已排队,直到整个循环完成才显示。

我希望在循环的每次迭代中实时查看这些数字。在单元执行期间,而不是在整个单元执行完成时。

例如,如果我的代码是:

for i in range(10):
  print(i)
  show_figure(FIG_i)
  do_a_10_second_calculation()
Run Code Online (Sandbox Code Playgroud)

我目前看到:

0
1
2
...
9
FIG_0
FIG_1
...
FIG_9
Run Code Online (Sandbox Code Playgroud)

我想要的是:

0
FIG_0
1
FIG_1
2
FIG_2
...
Run Code Online (Sandbox Code Playgroud)

最重要的是,我希望看到计算出来的数字,而不是等到整个循环完成之后才在屏幕上看到任何数字。

python real-time matplotlib jupyter-notebook

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