我正在从一个exmaple项目中构建一个项目。我创建了一个 "HelloWorld "项目,只是为了测试.h包括和.so库。我对.h文件有一些问题,因为我是一个完全的C++初学者,我正在从一个示例项目中提取元素来构建我自己的项目。我在运行windows示例时没有任何问题。我已经让这个运行并修改了它。我目前使用一个运行Debian 9的BeagleBone AI板作为远程服务器进行linux调试。我在Visual Studio中的.h文件中添加了Include目录,这些文件被识别,我在Visual Studio中的linker设置中添加了.so文件,但在构建它时没有收到这样的文件或目录错误。我已经检查了BeagleBone的项目文件夹,以确保文件存在,它确实存在。
我不明白为什么它在那里的时候,程序却没有看到它。我有几个问题想得到一些答案。请记住,我是C++新手,而且是边走边学。
下面是项目和设置,如果有人有什么建议,那将会很感激。我已经使用了图像,因为还没有真正的代码,只是想在我继续前进之前让共享对象文件被看到。
我假设链接器找不到的共享库是......。libpicozense_api.so
.
移除 libpicozense_api.so
来自 链接器 -> 输入 -> 额外的依赖性设置,而是在 链接器 -> 输入 -> 图书馆的依赖性 设置输入 picozense_api
. 不 libpicozense_api.so
.
这些设置为GCC连接命令生成库选项。一个库选项的形式是 -lname
. 它引导链接器进行搜索,首先在指定的链接器搜索目录(-Ldir
),然后在链接器的默认搜索目录中,对其中的任何一个文件 libname.so
(共享图书馆)或 libname.a
(静态库),并且更喜欢 libname.so
如果两个文件都在同一个搜索目录下找到。IDE希望你知道链接器 -> 输入 -> 图书馆的依赖性 是指定一个以分号分隔的列表的地方。name
应通过作为 -lname
连接命令中的选项。1
一个无限制的文件名,如 libpicozense_api.so
,具体如下链接器 -> 输入 -> 额外的依赖性 将会简单地将该文件名添加到链接命令中,然后只有在命令执行的目录中存在该名称的文件时才会被找到,而这是不存在的。