草庐IT

native-lib

全部标签

C++ 静态库 - 如何从 .lib 创建 .a 文件?

我下载了一个开源C++库。问题在于它是一个库目标文件(.lib)。这就是它的分布方式。另一方面,我正在尝试使用AndroidNDK将其用作静态库,这需要一个.a文件。自从我使用C++以来已经有好几年了,所以也许有人可以澄清这一点。不太确定为什么他们分发为.lib与.a文件?我如何从.lib文件创建.a文件? 最佳答案 查看来自binutils的ar命令:arrcsmylib.amylib.lib 关于C++静态库-如何从.lib创建.a文件?,我们在StackOverflow上找到一个类

c++ - 将 MSVC++ .lib 文件与 mingw 一起使用。名称修改

我有静态C++库,用MSVC和dll文件编译(称为opennurbs的库)。我需要在项目中使用这个库,由mingw编译(我使用Qtcreator,但项目不使用qt库)。所以,我有Unresolvedexternal问题。我认为名称修改有问题。如何将.lib文件转换为.a库?我尝试使用nm命令,但它不起作用:“foo.dll中没有符号”。Extern"C"不起作用,因为它是C++库。 最佳答案 一般来说,您不能从用另一个编译器构建的程序中使用用一个编译器构建的C++DLL。名称重整只是问题之一-没有对异常处理、RTTI、内存管理甚至类

c++ - 使用由 ".h"、 ".lib"和 ".dll"文件组成的第三方库

所以目前我正在尝试使用NationalIntruments和IVIFoundation的VISA库来读取/写入各种外部设备的命令。我对我的IDE比较陌生:MicrosoftVisualC++Express2010,这是我第一次尝试使用需要超过.h导入的第三方库。基本上我有一个包含3个头文件的目录,一个包含3个.lib库的目录和一个包含7个DLL的目录。他们没有关于任何单个文件的功能的文档,只有整个库。因此,我需要能够获取与我的项目关联的所有这些文件。目前,我已将所有头文件导入到我的头文件中,并将头目录添加到项目属性的包含目录中。我还将包含.lib文件的目录添加到项目属性中的库目录中。我

c++ - 如何使用 CppUnitTestFramework 在 Visual Studio native C++ 单元测试中获取 $(ProjectDir) 路径?

我需要能够检索我的单元测试的项目目录路径,以便加载测试所需的一些文件。我不想对其进行硬编码,以防将来解决方案结构和绝对路径发生变化。 最佳答案 好的,我就是这样做的:在我的项目属性->配置->C/C++->预处理器中,我添加了这个预处理器定义UNITTESTPRJ="$(ProjectDir)."然后在我的cpp文件中我做了:#defineSTRINGIFY(x)#x#defineEXPAND(x)STRINGIFY(x)strings=EXPAND(UNITTESTPRJ);s.erase(0,1);//erasethefirst

c++ - 包括来自/usr/local/include 的头文件和来自/usr/local/lib 的库

我刚刚在OSX10.9上安装了GLFW。header安装到/usr/local/include,库安装在/usr/local/lib。我想知道我还需要做些什么才能让我的C++程序包含像#include"GLFW/glfw3.h"这样的header,而不是像#这样指定整个路径包括“usr/local/include/GLFW/glfw3.h”。图书馆也是如此,因为到目前为止我什至无法使用-lglfw3链接图书馆。提前致谢。 最佳答案 您可以将-I/usr/local/include作为预处理器标志传递给编译器,将-L/usr/loca

Postgres安装目录中包含,共享,LIB目录和子目录和文件的功能是什么?

Postgres安装目录中包含,共享,LIB目录和子目录和文件的功能是什么?看答案这些文件是PostgreSQL软件的一部分。include包含所需的C标头文件编译使用C客户库库的客户端应用程序libpq和编译服务器扩展名为PostgreSQL。lib包含用于链接客户端应用程序的静态和动态库,是PostgreSQLServer的一部分的动态库和包含PostgreSQL扩展的动态库。share包含其他文件消息文件将PostgreSQL消息转换为各种语言,时区数据,配置文件用于全文搜索,配置文件的模板和扩展配置文件和脚本。

c++ - 核心转储的原因是什么?来自 oracle lib 的堆栈显示

我有一个coredmp,其中所有线程堆栈看起来都很正常,但一个堆栈显示如下。任何人都可以告诉我这可能的原因吗?我可以看到正在从oracle库调用exit,这是oracle的问题吗?当这种情况发生时,任何人都可以指导我吗?Thread3(process26454):#00x00002b803ceb54a8inexit()from/lib64/libc.so.6#10x00002b803bbe93f5inskgdbgcra()from/home/oracle/product/11g/lib/libclntsh.so.11.1#20x00002b803be9cdecinkpeDbgCrash

c# - 以纯 native 模式开始调试 C# 启动项目

我有一个包含C#(托管)和C++(native)项目的MSVC2013解决方案。一个C#项目设置为启动项目。我想通过调试启动这个项目,这通常在devenv中只需按F5即可实现。但是,我想以native-only模式启动调试器(即无托管调试)。我无法通过更改C#项目的设置来实现此行为:它只有一个选项“启用native代码调试”,它允许启用或禁用native调试。我知道的唯一标准方法是在不调试的情况下启动应用程序,然后附加到只选择native调试的进程。有没有办法使这个过程自动化?理想情况下,按下一个按钮就足以启动纯native调试。也许一些扩展可以简化这项任务。P.S.我在混合模式调试中

c++ - 将库 (.lib) 链接到 Visual Studio 2013 项目

我按照link的说明构建了库.为了将该库链接到VisualStudio,我使用了以下方法,但它们都不能链接到我构建的.lib文件。Windows系统变量添加动态库路径(Environmentvariables->Path)设置为;C:\Users\venushka\Desktop\libxbee3-win32\libVisualStudio(包含头文件和源文件C++)配置属性->C/C++->常规->附加包含目录设置为C:\Users\venushka\Desktop\libxbee3-win32链接库配置属性->链接器->常规->附加库目录设置为C:\Users\venushka\D

java - 我可以从 native c++ 检测 Java 版本吗

我正在使用nativeC++/MFC编写一个复杂的设置/安装程序应用程序。我非常希望能够检测到已安装的Java版本(如果有的话)。这可能吗?如何实现? 最佳答案 派生一个执行以下命令的进程:java-version。收集输出并解析它。它看起来像下面这样:javaversion"1.5.0_16"Java(TM)2RuntimeEnvironment,StandardEdition(build1.5.0_16-b06-284)JavaHotSpot(TM)ClientVM(build1.5.0_16-133,mixedmode,sha