当前位置: 首页 > 知识库问答 >
问题:

用GCC在Linux中用库编译命令行

竺和洽
2023-03-14

我是Android开发人员和计算机视觉工程师。

我正在Mac上用OpenCV做一个计算机视觉项目,用Xcode编写OS X10.9.5,它是跨平台的,所以我所做的是命令行编译到linux并访问它(服务器)。

我遇到的问题是无法识别库JSONCPP。我用:

/home/ec2-user/project/utils.cpp:2475:未定义对`JSON::Value::Value(JSON::ValueType)'的引用

/home/ec2-user/project/utils.cpp:2478:未定义对`JSON::Value::Value(JSON::ValueType)'的引用

/home/ec2-user/project/utils.cpp:2479:未定义对`JSON::Value::Value(JSON::ValueType)'的引用

/home/ec2-user/project/utils.cpp:2484:未定义对`JSON::value::append(JSON::value const&)'的引用

/home/ec2-user/project/utils.cpp:2484:未定义对`JSON::value::~value()'的引用

/home/ec2-user/project/utils.cpp:2486:未定义对`JSON::value::value(std::string const&)‘的引用

/home/ec2-user/project/utils.cpp:2486:未定义对`JSON::value::~value()‘的引用

/home/ec2-user/project/utils.cpp:2487:未定义对`JSON::Value::Value(JSON::Value Const&)'的引用

/home/ec2-user/project/utils.cpp:2487:未定义对`JSON::Value::Operator[](char const*)‘的引用

/home/ec2-user/project/utils.cpp:2488:未定义对`JSON::value::append(JSON::value const&)'的引用

/home/ec2-user/project/utils.cpp:2479:未定义对`JSON::value::~value()‘的引用

/home/ec2-user/project/utils.cpp:2489:未定义对`JSON::value::~value()‘的引用

/home/ec2-user/project/utils.cpp:2475:未定义对`JSON::value::~value()‘的引用

/home/ec2-user/project/utils.cpp:2484:未定义对`JSON::value::~value()'的引用

/home/ec2-user/project/utils.cpp:2486:未定义对`JSON::value::~value()‘的引用

opencv_install_modules:=on

包括$(LOCAL_PATH)/jsoncpp/android.mk

包括/users/rafaelruizmunoz/desktop/androiddevelopment/opencv-2.4.9-android-sdk/sdk/native/jni/opencv.mk

LOCAL_C_INCLUDES+=/users/rafaelruizmunoz/desktop/rd/opencvtry/libraries/jsoncpp-master/include

LOCAL_PATH:=jni

LOCAL_ALLOW_UNDEFINED_SYMBOLS:=true

LOCAL_CPPFLAGS:=-std=C++11

LOCAL_CFLAGS:=-w

cflags=-w-g-wall-wextra-std=c++11-wno-write-strings../../include/boost

你知道该怎么办吗?提前谢了。

问候。

共有1个答案

汪博艺
2023-03-14

这是基于您的Android makefile的猜测,因为我看不到包含的“build_shared_libraries”,但我注意到您有:

“local_shared_libraries:=libJsoncpp libopencv_java”

我想在G++命令行中需要“-ljsoncpp-lopencv_java”。

 类似资料:
  • 我有两个java文件,(main.java,test.java)在每个文件中我编写了包ADT; 我在main.java内部编写了一个名为ADT的类,在我的test.java中将该类称为ADT。 有人能帮我吗?

  • 主要内容:SDKMAN!,创建和运行第一个程序,hello.kt,运行 REPL(交互式解释器),使用命令行执行脚本Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、

  • Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、Cygwin、F

  • 在Linux上如何使用gcc编译c程序 如何安装gcc 编辑c代码 编辑代码 运行代码

  • 我正在尝试为Ubuntu安装gnu arm工具链。我首先从CodeSourcery下载了tar。但是,当我进入bin文件夹时,我不能运行任何二进制文件。我尝试了使用。/和不使用,并将其放入路径中,它一直告诉我“command not found”,但文件就在我面前的文件夹中。然后我尝试了sudo apt-get install gcc-arm-linux-gnueabi,但是在它说它已经成功安装之

  • 就处理编译/链接错误而言,我是一个新手。 我正在使用一个很大的C++代码(还有一些C文件)。我已经成功地在Mac上运行了它,用G++编译。现在我需要在基于Linux的集群上运行它,因为它在我的Mac上太慢了。代码由我必须编译的几个库组成,加上我自己使用这些库的代码。 我可以使用默认的g++编译器编译集群上的所有代码。然而,不幸的是,我已经发现我需要用GCC/4.7.2进行编译,这样代码将与集群上的