【问题标题】:Compiling a code with mysql_config and pkg-config使用 mysql_config 和 pkg-config 编译代码
【发布时间】:2013-06-06 19:00:02
【问题描述】:

最近我一直在学习如何用 C 编程语言编写 GTK+ 应用程序和 MySQL。

我想尝试同时使用这两个库编写一个程序,我已经完成了,但我无法编译它...

当我编译一个使用 MySQL 的程序时,我会这样做:

    gcc exa_7.c -o exa_7 -std=c99  `mysql_config --cflags --libs`

当我编译 GTK+ 应用程序时,我会这样做:

    gcc -o test_5 test_5.c `pkg-config --libs --cflags gtk+-2.0`

我不能同时写两个,我的意思是pkg-configmysql_config,因为编译器不会接受它。我一直在尝试找到一些 makefile 脚本,但没有找到任何有用的东西。请帮忙。谢谢。

【问题讨论】:

  • 一般来说,你应该可以同时使用这两个。那么你得到了什么错误?
  • gcc: error: unrecognized command line option ‘--cflags’ 等等,我不会复制所有消息,因为它都是波兰语。本质是:它一个接一个地列出了gcc: error: [-L/usr/lib/i386-linux-gnu:之类的库,并说“没有这样的文件或目录`我不知道如何在这个命令语法中同时写pkg-configmysql_config
  • 这意味着您在某处缺少空格,或者在某处的反引号 (`) 中有一些错误。更新您在用于编译的 EXACT 命令中粘贴的问题。
  • 当然,我一直在尝试类似 gcc app_0.c -o app_0 mysql_config pkg-config --cflags --libs gtk+-2.0 和类似 gcc app_0.c -o app_0 pkg-config mysql_config --cflags --libs gtk+-2.0 和类似 gcc app_0.c -o app_0 pkg-config --cflags --libs gtk+-2.0 mysql_config 它们都不起作用

标签: mysql c gtk pkg-config


【解决方案1】:

你应该这样做:

gcc exa_7.c -o exa_7 -std=c99  `mysql_config --cflags --libs` `pkg-config --libs --cflags gtk+-2.0`

如果反引号导致您出现问题,您可以使用 $() 来运行程序:

gcc exa_7.c -o exa_7 -std=c99  $(mysql_config --cflags --libs) $(pkg-config --libs --cflags gtk+-2.0)

【讨论】:

  • 终于...有一个问题。我虽然没关系,因为命令没有更多的语法错误,但是有问题。请看一看。当我只编译 mysql 程序时: gcc exa_4.c -o exa_4 -std=c99 mysql_config --cflags --libs 它工作得很好,但是当我用你的命令编译混合 mysql gtk 程序时,我得到了这种错误:/usr/include/ mysql/my_global.h:971:1: 错误:未知类型名称 'ulong' 在来自 /usr/include/mysql/my_global.h:1039:0 的文件中,来自 app_0.c:7: /usr/include/mysql /my_dbug.h:37:3: 错误:未知类型名称“uint”等...
  • 我刚刚解决了 :) 我在代码的开头移动了 #include <my_global.h>#include <mysql.h>,这是第一个包含的方式,现在它工作正常 :) 再次感谢!跨度>
猜你喜欢
  • 2019-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多