草庐IT

Libraries

全部标签

shared-libraries - 我可以在 Go 中使用共享对象吗?

我可以在Go中使用共享对象吗? 最佳答案 根据围棋FAQ,您可以使用“外部函数接口(interface)”调用C库:DoGoprogramslinkwithC/C++programs?TherearetwoGocompilerimplementations,6gandfriends,genericallycalledgc,andgccgo.GcusesadifferentcallingconventionandlinkerandcanthereforeonlybelinkedwithCprogramsusingthesameconv

shared-libraries - 如何用 Go 编写模块化(插件)应用程序?

我知道Go编程语言并不真正支持动态链接。这让我想知道,如果有人想编写支持第三方(或其他贡献的)插件的应用程序,他们会怎么做?似乎典型的react是Go编译速度很快,所以只需重新编译,但我发现这对系统管理员来说并不实用。例如,Apache网络服务器有数量惊人的模块,可以很容易地配置为加载(或不加载)。插件使用套接字或其他IPC是唯一的选择吗? 最佳答案 我会做的是,通过管道上的channel设置一个API。并告诉插件作者发布一个通过此管道进行通信的exe。这与当今Chrome的工作方式类似。这是away通过netchan实现这一目标。

c++ - Qt 造物主/Linux : setting compiler/linker option -ldl for dynamic libraries

我都被谷歌搜索出来了!感谢任何可以帮助我的人......我已经构建了test.so并希望使用dlfcn.h中定义的dlopen()、dlsym()等动态调用它我可以编译我在命令行上调用的程序(main.cpp)没有错误g++main.cpp-ldl-omyprog没有-ldl开关,我得到错误:undefinedreferencedlopen()。另外,如果-ldl开关没有放在g++参数列表中的源文件之后,那么我会得到同样的错误。我的问题是:如何在QtCreator中编译我的main.cpp?QtCreator报同样的错误:undefinedreferencedlopen()我试过直接将

c++ - C、C++ : Shared libraries: Are single functions or complete libraries loaded into memory?

在静态编译中,只有程序实际需要的库函数才会链接到程序。共享库怎么样?动态链接器是只将程序实际需要的函数加载到内存中,还是始终加载整个共享库?如果它是函数,我如何获得程序的实际大小,包括它在运行时加载的函数?谢谢!奥利弗 最佳答案 通过静态编译,只有程序实际需要的库函数才会链接到程序。共享库怎么样?共享库由程序以符号方式引用,也就是说,程序将通过名称识别它所链接的共享库。动态链接器是仅将程序实际需要的函数加载到内存中,还是始终加载整个共享库?程序将引用共享库中的特定入口点和数据对象。共享库将作为单个大对象映射到内存中,但内核只会调入实

c++ - 如何在unix环境下将Poco库(libraries)链接到我们的程序

我在使用Poco库时遇到问题。我需要一个简单的解决方案来简化编译。Poco库是否有任何pkg-config文件可用于我们的make文件?或者任何替代解决方案?目前我使用UbuntuGNU/Linux。我正在尝试在我的应用程序中使用poco库,但我不知道如何将Poco库链接到它。事实上,我不知道应该将多少库链接到该应用程序。我想知道是否有一种简单的方法可以做到这一点,例如使用pkg-config文件,就像我们使用gtkmm一样,例如:g++prog.cc`pkg-config--gtkmm-2.4--libs--cflags`-oprogpkg-config程序将适当的库和头文件附加到我

android - Android Studio 中的 Gradle : Failed to resolve third-party libraries

我一直在尝试将我的项目从Intellij切换到AndroidStudio,这需要我创建一个build.gradle文件。我知道我可以将这些中的每一个都添加为库依赖项,但我理想情况下希望能够使maven存储库依赖项工作。每次同步时,我的支持库都可以正常同步,但是对于每个第三方库,我都会得到类似"Error:(30,13)Failedtoresolve:com.facebook.android:facebook-android-sdk:3.23.1"对于每个库。buildscript{repositories{mavenCentral()}dependencies{classpath'co

android - com.android.ide.eclipse.adt.LIBRARIES 在构建路径中的意义?

我已经更新到最新的EclipseSDK(4.0.x)、工具(r16)和插件(16.0.1)。我注意到现在几乎我在Eclipse中的所有项目都有这个问题标题中提到的库,在Java构建路径的库选项卡中显示为引用库。这是相对较新的,虽然我不确定它出现在SDK的哪个升级版本中。它没有造成任何问题,但我很想知道它的用途是什么?有趣的是,它没有出现在我也从命令行使用Ant构建的项目中。在这些项目中,我将Ant构建的二进制文件发送到Eclipse工作区之外的文件夹。这些项目在项目根目录中自然有一个build.xml、一个ant.properties和一个proguard.cfg。我怀疑这与为什么co

Android NDK/JNI : Building a shared library that depends on other shared libraries

我正在编写一个android应用程序,它希望将JNI调用放入使用NDK内置的共享库中。诀窍是这个共享库调用其他共享库提供的函数。其他共享库是在别处编译的C库。这是我尝试过的:我的环境:我在Eclipse中工作。我添加了native支持并拥有一个jni库。在那个库中,我有我的代码和一个\lib目录,我在其中复制了我的其他.so文件。尝试#1Android.mk:告诉它库在哪里LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)LOCAL_MODULE:=native_libLOCAL_SRC_FILES:=native_lib.cppLOCAL_LD

android - [INSTALL_FAILED_NO_MATCHING_ABIS : Failed to extract native libraries, res=-113]

我对导入我的项目的第三方库有疑问。我阅读了很多关于此的文章,但没有得到任何信息如何正确处理它。我把我的类.so放到文件夹中。问题是我尝试运行我收到的应用程序[INSTALL_FAILED_NO_MATCHING_ABIS:Failedtoextractnativelibraries,res=-113] 最佳答案 2019年7月25日:我在AndroidStudio3.0.1中遇到过这个问题:在检查了很多帖子之后,这里是Fix可行的:转到模块build.gradle并在Androidblock中添加此脚本:splits{abi{ena

android - 如何使用工具 :overrideLibrary with multiple libraries

我想创建一个兼容的Android项目,例如API级别4,但仍想使用UiAutomator测试它,需要在较新的设备上使用API级别18。因此,该应用也可以在旧设备上运行,但自动测试将在新设备上执行。因此,我使用AndroidStudio创建了一个新项目并添加了UiAutomator测试库:dependencies{compilefileTree(dir:'libs',include:['*.jar'])testCompile'junit:junit:4.12'compile'com.android.support:appcompat-v7:23.0.1'androidTestCompil