我正在尝试让一个库在我的c 项目中工作,并且对于不习惯c 的人没有明确的说明
以下链接是我最近来的
它指出以下
-L/path/to/my/library/folder -ldllname
还有以下线程指出以下内容
gcc yourfile.cpp -lblah
现在从我可以看到的命令是-l
+
filename
,例如我的文件名是,directory/libtest.so
这-ldirectory/libtest.so
是正确的,有人可以澄清一下吗
我目前正在使用以下命令来编译我的maincpp.cpp
文件,但是想包含一个名为.so的文件,例如./directory/libtest.so
g++ -fPIC -o libgetmacip.so -shared -I $JAVA_HOME/include -I $JAVA_HOME/include/linux maincpp.cpp cpptoinclude.cpp
现在从我所看到的命令
-l + filename
,例如我的文件名是directory/libtest.so
这将是-ldirectory/libtest.so
不,那是不正确的。应该是,-Ldirectory -ltest
即您-L
用来将目录添加到链接器将在其中查找库的搜索路径,并说出要使用链接到的库-l
,但是要链接到libtest.so
或libtest.a
说-ltest
没有lib
前缀或文件扩展名。
您 可以
通过不带-L
或-l
选项的显式命名文件(即just)进行链接directory/libtest.so
,但是对于动态库,这几乎总是错误的做法,因为它将确切的路径嵌入到可执行文件中,因此同一库必须位于同一位置程序运行时。通常,您想按名称(而不是路径)链接到它,以便可以在运行时从任何位置使用具有该名称的库。
问题内容: 我在使g ++链接curl lib文件时遇到一些问题。我正在将Visual Studio 2017与linux dev插件和Ubuntu Server 17.04一起使用。 给出了输出,我尝试将其添加到中的链接器选项。我还将输出添加到了编译选项。这没有解决问题。 然后,我尝试从网站上获取源代码,并使用了make和make install。给了我不同的输出。我更改了链接器中的选项,但仍然
我希望使用SetupTools将一个包部署到PyPi。但是,包的核心部分实际上是用Fortran编写的,我正在使用f2py用Python包装。基本上,项目的结构如下所示: null myfunc.py模块导入hello.so(),然后myfunc.py中的函数可以使用该模块。这在我的机器上很好用。 然后我在我的Ubuntu上尝试了标准的setuptools安装:,结果安装得很好。但不幸的是,在导入
问题内容: 我在运行64位Ubuntu 12.04的桌面上下载并构建了gcc 4.8.1。我像文档建议一样使用命令从源代码中构建它 它似乎通过了所有测试,我将所有内容都安装到了带有后缀-4.8的主目录中,以区别于版本4.6.3的系统gcc。 不幸的是,当我使用g -4.8编译c 程序时,它链接到系统libc和libstdc ,而不是从gcc-4.8.1编译的较新的程序。我下载并构建了gcc 4.8
问题内容: 如何将JavaScript文件正确链接到HTML文档? 其次,如何在JavaScript文件中使用jQuery? 问题答案: 首先,您需要从http://jquery.com/下载JQuery库,然后以以下方式在html head标记中加载jquery库 那么您可以通过在jquery加载脚本之后编码您的jquery代码来测试jquery是否正常工作 如果要单独使用jquery脚本文件,
如何正确地将JavaScript文件链接到HTML文档? 其次,如何在JavaScript文件中使用jQuery?
问题内容: 在x86_64 linux上使用gcc和ld我需要链接到库的新版本(glibc 2.14),但是可执行文件需要在具有旧版本(2.5)的系统上运行。由于唯一不兼容的符号是memcpy(需要memcpy@GLIBC_2.2.5,但提供memcpy@GLIBC_2.14的库),我想告诉链接器,它应该使用我指定的旧版本,而不是使用memcpy的默认版本。 。 我发现这样做很尴尬:只需在链接器命