小编use*_*191的帖子

编译失败时"在制作共享对象时不能使用"重定位R_X86_64_32对`.rodata.str1.8'"

我正在尝试从VPS中的makefile编译此源代码,但它不起作用.VPS是64 Cent OS

这是完整的错误

# make
gcc -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/amx/*.c
g++ -c -O3 -w -DLINUX -I../SDK/amx/ ../SDK/*.cpp
g++ -c -O3 -w -DLINUX -I../SDK/amx/ *.cpp
g++ -O2 -fshort-wchar -shared -o "TCP_V1.so" *.o
/usr/bin/ld: TCP-LINUX_V1.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be     used when making a shared object; recompile with -fPIC
TCP-LINUX_V1.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

这是我的makefile:

GPP=g++
GCC=gcc
OUTFILE="TCP_V1.so"

COMPILE_FLAGS=-c -O3 -w -DLINUX -I../SDK/amx/

all: …
Run Code Online (Sandbox Code Playgroud)

c++ linux linker gcc shared-libraries

71
推荐指数
4
解决办法
13万
查看次数

如何修复:/usr/lib/libstdc++.so.6:找不到版本`GLIBCXX_3.4.15'

所以我现在急需找到解决方法.我正在编译一个共享库.所以在Ubuntu 32位(尝试在Debian和Ubuntu 64位下进行,但没有一个工作)

我不断得到:/usr/lib/libstdc++.so.6: version ``GLIBCXX_3.4.15' not found每次我尝试加载我的插件.

以下是我收到此错误的方法:

  1. 安装最新的Ubuntu 32位
  2. sudo apt-get install build-essential
  3. 编译并加载我的插件(.so)

以下是我发现并尝试过的一些链接,但没有一个对我有用:

(我的老问题:在发布这个问题后几天我以某种方式修复了它,但我不记得我是怎么做到的)

我的问题

另一个用户遇到同样的问题

而另一个

我看到一些人通过将libstdc ++(我认为)移动到某个目录然后将idk指向或链接到该目录来修复它,但这让我很困惑.

有人知道修复吗?

(编辑:) - 运行:strings /usr/lib/libstdc++.so.6 | grep GLIBC在终端给我:strings '/usr/lib/libstdc++.so.6': No such file.这可能是问题吗?如果是这样,我该如何安装这个库?

(Edit2 :)其他人都知道解决方案吗?

(编辑3)仍然需要一个解决方案.有没有办法看到在哪个发行版上编译了共享库?我知道我刚刚编译过这个相同的库,但是不记得!!

(Edit4)ldd my_lib_.so给了我:

    linux-gate.so.1 =>  (0xb77d7000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb76c1000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb76a4000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb74fa000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb74ce000)
    /lib/ld-linux.so.2 (0xb77d8000)
Run Code Online (Sandbox Code Playgroud)

ldd program_im_loading_so_into 给我:

    linux-gate.so.1 =>  (0xb77d8000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb77c0000)
    libpthread.so.0 …
Run Code Online (Sandbox Code Playgroud)

c++ linux

52
推荐指数
4
解决办法
17万
查看次数

表格'onsubmit'没有被调用

这是我表格的一部分:

<form name='form-main' onsubmit='return validate()' action='' method='post'>
    <center><input type='submit' onClick='this.disabled=true; this.form.submit();' value='I accept - Download the GM!'/></center>
</form>
Run Code Online (Sandbox Code Playgroud)

这是validate功能:

function validate()
{
    // this is just to test if it actually shows
    alert('You must not leave any of the fields blank!');
    return false;
}
Run Code Online (Sandbox Code Playgroud)

每当我点击提交按钮,没有任何反应,页面只是重新加载..我希望它显示警报对话框.

javascript forms

10
推荐指数
2
解决办法
3万
查看次数

嵌入语句出错

这是我的代码:

if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else SoundPlayer iPlay = new SoundPlayer(@TxtBeepFile.Text);

iPlay.Play();
Run Code Online (Sandbox Code Playgroud)

这是错误:

Embedded statement cannot be a declaration or labeled statement

如果那是不可能的,请记住告诉我怎么做?

c#

6
推荐指数
1
解决办法
2万
查看次数

如何逃避正则表达式中的特殊字符?

此代码搜索richtextbox并将数组的第一个字段替换为第二个字段.除了两个字段外,一切正常.

iEmo = new string[,] {
  {@":\)",    Smile},
  {@":\(",    Sad},
  {@"8\)",    Cool},
  {@":\|",    Neutral},
  {@";\)",    Wink},
  {@">:\(",   Evil},    // Won't work for this one
  {@">:D",    Twisted}, // Or this one
  {@":\?",    Question,}
};
Run Code Online (Sandbox Code Playgroud)

这是将数组转换为我想要的部分:

public void SetSmiley(RichTextBox RichBox) {
  for (int i = 0; i < (iEmo.Length / 3); i++) {
    try {
      RichBox.Rtf = Regex.Replace(RichBox.Rtf, iEmo[i, 0], iEmo[i, 1], RegexOptions.IgnoreCase);
    }
    catch (Exception e){}
  }
}
Run Code Online (Sandbox Code Playgroud)

c# regex

5
推荐指数
1
解决办法
1359
查看次数

从数组填充 JTable

环顾四周,但找不到任何可以解释如何执行以下操作的内容:

Object rowData[] = { "Row1-Column1", "Row1-Column2", "Row1-Column3" };

Object columnNames[] = { "Column One", "Column Two", "Column Three" };
Run Code Online (Sandbox Code Playgroud)

我已经用编辑器制作了一个表格,名称:“jTable1”。

java swing jtable

1
推荐指数
1
解决办法
1万
查看次数

如何使用mysql_num_rows加速此查询?

所以我有2个DB.一个在我的主要主机(论坛网站),另一个用于其他信息.我使用其他数据库的原因是因为我的主机不允许远程连接.所以我现在不得不尝试这种方式.

我想简单地编写这段代码.通过更好的我正在谈论,如果我想建立另一个连接,如果它可以优化,这是使用它的正确方法,请让我知道如何.

$connection = mysql_connect("Host", "User", "Pass") or die(mysql_error());
mysql_select_db("DB", $connection);

$gs_kdq = mysql_query("SELECT SUM(Kills) AS g_killz, SUM(Deaths) AS g_deathz FROM Users", $connection);
$gs_kd = mysql_fetch_assoc($gs_kdq);

$gs_players = mysql_query("SELECT * FROM Users", $connection) or die(mysql_error());
$gs_Something0 = mysql_query("SELECT * FROM Something0", $connection) or die(mysql_error());
$gs_Something1 = mysql_query("SELECT * FROM Something1", $connection) or die(mysql_error());
$gs_Something2 = mysql_query("SELECT * FROM Something2", $connection) or die(mysql_error());

mysql_num_rows($gs_players);
mysql_num_rows($gs_Something0);
mysql_num_rows($gs_Something1);
mysql_num_rows($gs_Something2);
Run Code Online (Sandbox Code Playgroud)

由于(我认为)mysql_num_rows,论坛加载有点慢.

php mysql

0
推荐指数
1
解决办法
138
查看次数

标签 统计

c# ×2

c++ ×2

linux ×2

forms ×1

gcc ×1

java ×1

javascript ×1

jtable ×1

linker ×1

mysql ×1

php ×1

regex ×1

shared-libraries ×1

swing ×1