gpt4 book ai didi

c++ - 使用交叉编译器和 VisualGDB 时未定义对 mysql 的引用

转载 作者:行者123 更新时间:2023-11-29 21:22:47 33 4
gpt4 key购买 nike

我正在尝试使用 VisualGDB 和交叉编译器为 Raspberry PI 编译简单的 C++ 程序。我已经完成了教程 http://visualgdb.com/tutorials/raspberry/wiringPi/ 中的所有内容并设法运行示例闪烁 LED 应用程序,因此一切似乎都配置正常。

现在我想添加一些 mysql 支持来记录更改并读取一些配置信息。

#include <wiringPi.h>
#include <mysql/mysql.h>

int main(int argc, char *argv[])
{
wiringPiSetup();

MYSQL *mysql1 = mysql_init(NULL);


}

不幸的是,我收到错误:

'NULL' was not declared in this scope

我尝试包含

#include <mysql/my_global.h>

header ,因此 NULL 不再未声明,但显示另一个错误:

error VGDB1000: undefined reference to `mysql_init'

我做错了什么?

编辑

添加了我的设置的屏幕截图。老实说,我不太了解 gcc...可能这就是我使用 VisualGDB 的原因;)

enter image description here

我尝试将其附加到 LDFLAGS:

`mysql_config --cflags` `mysql_config --libs`

但是我得到了一个错误:

Tool arguments: -Wl,--start-group "C:\Users\Marek\AppData\Local\Temp\/VisualGDB_ToolchainTestProgram.o" -o "C:\Users\Marek\AppData\Local\Temp\/VisualGDB_ToolchainTestProgram" -Wl,-gc-sections `mysql_config --cflags` `mysql_config --libs` -lpthread -lwiringPi -Wl,--end-group
arm-linux-gnueabihf-gcc.exe: error: `mysql_config: No such file or directory
arm-linux-gnueabihf-gcc.exe: error: `mysql_config: No such file or directory

最佳答案

好的,我成功解决了这个问题。我在这里发现非常有用的提示:https://sysprogs.com/w/forums/topic/include-mysqlmysql-h-errorundefined-reference-to/

You need to add the MySQL library to the ‘libraries’ setting in the VisualGDB Project Properties. Specify the name without the ‘lib’ prefix and ‘.a’ suffix. E.g. if the library name is libmysql.a, simply specify ‘mysql’ in the ‘libraries’ field. You may also need to put extern “C” around the include file if it does not contain it.

我尝试将“mysql”添加到库名称部分,但正确的名称是mysqlclient

无需使用extern或添加LDFLAGS。

因此,每当您要添加新库时,请检查库目录中是否有正确的文件。

感谢您的评论,他们引导我找到了这个解决方案。

关于c++ - 使用交叉编译器和 VisualGDB 时未定义对 mysql 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35645146/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com