1

我已经阅读和研究了这几天,并决定我需要一些外部帮助!

(而且这个网站似乎是一个不错的地方,所以我想我会在这里发布我的问题,看看情况如何)

我们的小公司已经好几年没有在 AIX 上构建我们的应用程序了,我被分配了这项任务(幸好我喜欢挑战)。

我遇到的问题很容易描述,我可以看到其他人也在经历它,尽管我似乎无法找到答案。

如果我链接应用程序“非静态”,这意味着我不在构建命令中使用“-static”,则该应用程序在开发机器上运行良好,但在我们用于测试的其他 AIX 机器上运行良好。

【两机速记;

开发:

~$ uname -a
AIX aix3 2 5 000BA50D4C00

测试:

~$ uname -a
AIX aix4 1 5 002459A64C00

]

如果我与“-static”链接,则应用程序在开发机器上运行时会在引发异常时“中断”:

terminate called after throwing an instance of 'MyAppError'
Segmentation fault      (core dumped)

并且(好像这还不够),该应用程序仍然无法在测试机器上运行:

exec(): 0509-036 Cannot load program ./myapp because of the following errors:
        0509-130 Symbol resolution failed for myapp because:
        0509-136   Symbol _sigqueue (number 65) is not exported from
                   dependent module /unix.
        0509-136   Symbol ra_attachrset (number 95) is not exported from
                   dependent module /unix.
        0509-136   Symbol __rs_pickmcm (number 99) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_create (number 122) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_delete (number 123) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_getoverrun (number 124) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_gettime (number 125) is not exported from
                   dependent module /unix.
        0509-136   Symbol _timer_settime (number 126) is not exported from
                   dependent module /unix.
        0509-136   Symbol count_event_waiters (number 159) is not exported from
                   dependent module /unix.
        0509-192 Examine .loader section symbols with the
                 'dump -Tv' command.

我应该在这里注意我们正在使用“-pthead”进行链接,并且我已经阅读了几篇文章说在使用 pthread 时静态链接是不合适的。

我的脑袋疼。

我将非常感谢您对此的任何意见。

4

1 回答 1

1

您的部分麻烦是您正在 AIX 5.2 上构建并尝试在 AIX 5.1 上进行测试(uname -a信息表明 - 感谢您提供它)。您通常可以在较旧的平台上构建并在较新的平台上运行,但反之则不行。所以,这就是你麻烦的开始。

AIX 5.1 和 5.2 都很长。您应该至少使用 AIX 5.3 并且可以说是 AIX 6.x。

于 2008-12-13T03:20:46.137 回答