gpt4 book ai didi

c++ - 使用 Mysql 连接器构建应用程序时出错

转载 作者:行者123 更新时间:2023-11-29 00:56:28 25 4
gpt4 key购买 nike

我在使用 C++ 下的 MYSQL 连接器构建 hello world 应用程序时遇到问题。这是构建日志:

"/usr/bin/make" -f nbproject/Makefile-Release.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/c/data/c++/MySqlConnectorHW'
"/usr/bin/make" -f nbproject/Makefile-Release.mk dist/Release/MinGW-Windows/mysqlconnectorhw.exe
make[2]: Entering directory `/c/data/c++/MySqlConnectorHW'
mkdir -p dist/Release/MinGW-Windows
g++.exe -v -d -v -L C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt\mysqlcppconn.dll -o dist/Release/MinGW-Windows/mysqlconnectorhw build/Release/MinGW-Windows/main.o -L/C/Program\ Files/MySQL/MySQL\ Connector\ C++\ 1.1.0/lib/opt -L/C/boost/libs -L/C/Program\ Files/MySQL/MySQL\ Connector\ C\ 6.0.2/lib/opt
g++.exe: Files\MySQL\MySQL: No such file or directory
g++.exe: Connector: No such file or directory
g++.exe: C++: No such file or directory
g++.exe: 1.1.0\lib\opt\mysqlcppconn.dll: No such file or directory
Using built-in specs.
COLLECT_GCC=C:\MinGW\bin\g++.exe
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.5.2/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.5.2/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-werror --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.5.2 (GCC)
make[2]: Leaving directory `/c/data/c++/MySqlConnectorHW'
make[1]: Leaving directory `/c/data/c++/MySqlConnectorHW'
make[2]: *** [dist/Release/MinGW-Windows/mysqlconnectorhw.exe] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 21s)

有人可以帮我解决这个问题吗?谢谢。

最佳答案

我只在 Unix 下使用过 g++,所以其中一些是基于您给出的示例(可能是错误的)。

你有几个问题。你从 g++ 得到了一些奇怪的行为,因为它将此 C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt\mysqlcppconn.dll 视为不同的参数(由空格分隔) C:\ProgramFiles\MySQL\MySQLConnectorC++1.1.0\lib\opt\mysqlcppconn.dll。这可以通过引用字符串 "C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt\mysqlcppconn.dll" 来克服。

但是,传递给 g++ 的 -L 参数用于指定库的搜索路径,因此我不希望您指定 dll 的名称在此刻。我希望您通过 -L"C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt"。根据您类似的 -L 参数,似乎也可以通过转义字符串中的代码来实现此目的,在这种情况下,您最终会得到: -L/C/Program\Files/MySQL/MySQL\Connector\C++\1.1.0/lib/opt,碰巧你已经通过了。

结论:,似乎这个:-L C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt\mysqlcppconn.dll 是实际上应该指定要链接的库,而不是搜索路径。如果是这种情况,那么您应该使用 -l,而不是 -L,它应该只是:-lmysqlcppconn(至少是这样它可以在 Unix 中运行,在 Windows 下您可能需要指定扩展名,即 -lmsqlcppcon.lib)。

g++ 然后将尝试通过在 -L 参数指定的所有路径中搜索来解决丢失的链接,以查看它们是否具有与提供的 -l 参数 匹配的任何库>.

我建议打开 makefile:nbproject/Makefile-Release.mk 并查看此参数的来源并相应地更新它。

看看你的其余参数,值得注意的是当它到达你的输出时你可能会遇到类似的问题,因为它也有一个似乎没有被转义的空间:

-o dist/Release/MinGW-Windows/mysqlconnectorhw build/Release/MinGW-Windows/main.o

关于c++ - 使用 Mysql 连接器构建应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5889626/

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