- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
下面是我执行的
D:\Just4Fun\software\>make -f Makefile.hands stest<br/>
g++.exe -g -D_WIN32_WINNT=0x0601 -ID:\Boost\boost_1_51_0 -LD:\Boost\boost_1_51_0\stage\lib -LD:\MinGW\lib -lboost_system-mgw46-d-1_51 -lboost_filesystem-mgw46-d-1_51 -lboost_iostreams-mgw46-d-1_51 -lws2_32 -lwsock32 -o TestSerial.exe TestSerial.cpp
下面是结果
C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh':
D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to 'WSAStartup@8'C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE':
D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to 'WSACleanup@0'
collect2: ld returned 1 exit status
make: *** [stest] Error 1
下面是检查与提到的符号有关的库的结果(我未能以适当的方式格式化它)
`d:\MinGW\lib>nm -C libws2_32.a | grep WSAStartup
00000000 T WSAStartup@8
00000000 我imp_WSAStartup@8
d:\MinGW\lib>纳米-C libws2_32.a | grep WSACleanup
00000000 T WSACleanup@0
00000000 我imp_WSACleanup@0
d:\MinGW\lib>纳米-C libwsock32.a | grep WSACleanup
00000000 T WSACleanup@0
00000000 我imp_WSACleanup@0
d:\MinGW\lib>纳米-C libwsock32.a | grep WSAStartup
00000000 T WSAStartup@8
00000000 我 imp_WSAStartup@8`
正如我们所见,符号存在于库中,库位于相应的 -L 命令行选项所引用的位置。
那么,为什么是“ undefined reference ”????
最佳答案
这是一个非常常见的错误,有一个非常简单的解决方案:将您链接的库放在源文件和目标文件之后。
如果目标(或源)文件 A 依赖于库 B,则在链接时,在命令行中 A 必须位于 B 之前。这是因为 GNU(可能还有其他)链接器如何解决符号依赖性。
如果以相反(和错误)的方式进行操作
g++ -lB A.cpp
然后当链接器加载库 B 时,库中的任何函数都没有依赖性,因此链接器会丢弃该库。
所以正确的做法是把库放在最后
g++ A.cpp -lB
这就是为什么许多示例总是将库放在命令行最后的原因。
所以对于问题的命令行,应该改为
g++.exe -g -D_WIN32_WINNT=0x0601 -ID:\Boost\boost_1_51_0 \
-LD:\Boost\boost_1_51_0\stage\lib -LD:\MinGW\lib \
-o TestSerial.exe TestSerial.cpp \
-lboost_system-mgw46-d-1_51 -lboost_filesystem-mgw46-d-1_51 -lboost_iostreams-mgw46-d-1_51 -lws2_32 -lwsock32
此顺序对于库间依赖关系也很重要。如果库 L1 依赖于库 L2,那么在命令行中 L1 必须在 L2 之前。
关于c++ - MinGW + 提升 : undefined reference to `WSAStartup@8' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12472654/
我只是有一个更琐碎的问题。 为什么undefined == undefined 返回true,而undefined >= undefined 为false? undefined 等于 undefine
用PHP 7.2编写套接字服务器。根据Firefox 60中的“网络”选项卡,服务器的一些HTTP响应的第一行随机变为undefined undefined undefined。因此,我尝试记录套接字
在 JavaScript 中这是真的: undefined == undefined 但这是错误的: undefined <= undefined 起初我以为<=运算符包含第一个,但我猜它试图将其转换
在回答这个问题 (Difference between [Object, Object] and Array(2)) 时,我在 JavaScript 数组中遇到了一些我以前不知道的东西(具有讽刺意味的
来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/of , Note: thi
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
当我添加 到我的 PrimeFaces Mobile 页面,然后我在服务器日志中收到以下警告 WARNING: JSF1064: Unable to find or serve resource, u
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我是一名优秀的程序员,十分优秀!