草庐IT

library_release

全部标签

c++ - cmake - find_library - 自定义库位置

我目前正在尝试让CMake为我的项目运行(在Windows上)。我想使用安装所有库的自定义位置。为了让CMake知道这条路径,我尝试这样做:set(CMAKE_PREFIX_PATHD:/develop/cmake/libs)但是当我试图找到图书馆时find_library(CURL_LIBRARYNAMEScurlcurlliblibcurl_impcurllib_static)CMake找不到它。当我将前缀路径设置为set(CMAKE_PREFIX_PATHD:/develop/cmake/libs/curl)...图书馆位于。所以我的问题是:如何正确配置CMake以在自定义位置使

c++ - unique_ptr::release() 是否调用析构函数?

这段代码正确吗?autov=make_unique(12);v.release();//isthispossible?是否相当于delete的原始指针? 最佳答案 不,代码会导致内存泄漏。release用于释放托管对象的所有权而不删除它:autov=make_unique(12);//managestheobjectint*raw=v.release();//pointertono-longer-managedobjectdeleteraw;//needsmanualdeletion除非您有充分的理由在没有安全网的情况下处理原始内存

c++ - g++ 链接器 : force static linking if static library exists?

我有一个链接到许多库的程序。g++,默认情况下,更喜欢链接到共享库,即使相应的存档存在。如果存在静态存档,我如何更改此首选项以首选静态存档而不是动态库?​​注意,我使用了-static选项,但它会尝试为所有库查找静态存档,这不是我想要的。 最佳答案 g++-Wl,-Bstatic-lz-lfoo-Wl,-Bdynamic-lbar-Wl,--as-needed将zlib和libfoo链接为static,并将libbar链接为dynamic。--as-needed将丢弃任何未使用的动态库。

c++ - GNU 自动工具 : Debug/Release targets?

我一直在寻找这个:我目前正在将一个中型程序转换为自动工具,来自基于Eclipse的方法(使用makefile)我总是习惯于“调试”构建,包含所有调试符号且没有优化,以及“发布”构建,没有调试符号和最佳优化。现在我正在尝试使用autotools以某种方式复制它,因此我可以(也许)执行以下操作:./configuremakedebug其中包含所有调试符号且没有优化,以及在哪里:./configuremake将产生“发布”版本(默认)PS:我已经阅读了有关--enable-debug标志/功能的信息,但在我当前(简单)的设置中,configure无法识别使用它 最

shared-libraries - Go 中的共享库?

是否可以使用Go创建共享库(.so)?更新:为它创建了一个“issue”。 最佳答案 现在可以使用-linkshared标志你需要做的是首先运行这个命令:goinstall-buildmode=shared-linksharedstd(上面的代码使所有常见的包都可以共享!)那么goinstall-buildmode=shared-linkshareduserownpackage最后在编译你需要运行的代码时:gobuild-linksharedyourprogram以上内容现在不是静态链接所有内容,而是动态链接它们,您最终会得到更小的

Python3 : JSON POST Request WITHOUT requests library

我想仅使用nativePython库将JSON编码数据发送到服务器。我喜欢请求,但我根本无法使用它,因为我无法在运行脚本的机器上使用它。我需要不这样做。newConditions={"con1":40,"con2":20,"con3":99,"con4":40,"password":"1234"}params=urllib.parse.urlencode(newConditions)params=params.encode('utf-8')req=urllib.request.Request(conditionsSetURL,data=params)urllib.request.url

ruby-on-rails - rails : Uninstall specific version of a library using gem

例如我安装了以下四个版本:capybara(2.2.1,2.2.0.rc1,2.1.0,1.1.4)请建议如何卸载capybara1.1.4版 最佳答案 当您执行gemuninstallcapybara时,它应该会给您一个菜单,询问您要卸载哪个。或者使用-v选项。gemuninstallcapybara-v1.1.4请注意,如果您不使用rvm,您可能需要sudo这些命令。 关于ruby-on-rails-rails:Uninstallspecificversionofalibraryus

c - Linux C 程序 : How to find the library to which a function belongs

假设在运行时,我想找出函数“printf”的定义位置。我该怎么做?我的第一次尝试是打印出“printf”的地址,并将其与进程的虚拟地址映射进行比较:我的程序:#include#includevoidmain(){printf("addressofprintfis0x%X\n",printf);printf("pidis%d\n",getpid());while(1);}输出:-bash-4.1$./a&[1]28837-bash-4.1$addressofprintfis0x4003F8pidis28837但是,这表示该函数是在我自己的程序中定义的!-bash-4.1$head/pro

c - 为什么每次运行应用程序时都必须使用导出定义 LD_LIBRARY_PATH?

我有一些代码使用了一些共享库(gcc上的c代码)。编译时,我必须使用-I和-L显式定义包含和库目录,因为它们不在标准位置。当我尝试运行代码时,出现以下错误:./sync_test./sync_test:errorwhileloadingsharedlibraries:libsync.so:cannotopensharedobjectfile:Nosuchfileordirectory但是,执行以下操作,一切正常:exportLD_LIBRARY_PATH="/path/to/library/"./sync_test现在,奇怪的是,这只能工作一次。如果我再次尝试运行sync_test,我

linux - 如何在 Linux 中将 .so 文件添加到 java.library.path

我正在使用一个java应用程序,它需要在windows中的java.library.path中的.dll文件。要在Linux中运行相同的应用程序,我有相应的.so文件应该添加到linux机器中的java.library.path中,我没有找到任何简单的解决方案,所以远我确实将.so放在了已经在类路径中的文件夹中,但我的应用程序仍然提示中没有必需的.so文件java.library.path我想找:将.so添加到java.library.path的方法如何知道它是否已经添加(添加时) 最佳答案 在启动应用程序之前将包含目录添加到LD_